Java对于多重继承是怎么实现的?
蕉城网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
首先回答这个问题之前,我需要说明下什么是继承?什么是多重继承和单继承?java采用何种机制来实现多重继承:
1.1继承是面向对象编程的一种特性,是保留原有类功能的前提下拓展或改写部分功能,实现代码复用的方式.。
1.2单继承就是一个类只可以继承自一个父类,多继承是指一个类可以同时继承多个父类。
1.3java中使用的是单继承,也就是一个类有且只能有一个父类,java中可以使用接口实现来实现类似多继承的效果。
2.下面着重介绍Java中如何实现多继承:
如下是多重继承示例:
interface CanFight{
void fight();
}
interface CanSwim{
void swim();
}
interface CanFly{
void fly();
}
class ActionCharacter{
public void fight(){
System.out.println("I can fight!");
}
}
class Hero extends ActionCharacter implements CanFight,CanSwim,CanFly{
public void swim(){
System.out.println("I can swim!");
}
public void fly(){
System.out.println("I can fly!");
}
}
public class Adventure {
public static void t(CanFight x){x.fight();
}
public static void u(CanSwim x){x.swim();
}
public static void v(CanFly x){x.fly();
}
public static void w(ActionCharacter x){x.fight();
}
public static void main(String[] args){
Hero h=new Hero();
t(h);
u(h);
v(h);
w(h);
}
}
从这个实例中,不能看出Java对于多继承是如何实现的。
运行结果:
I can fight!
I can swim!
I can fly!
I can fight!
以上就是Java对于多继承是如何实现的说明
你好,java中由多重继承实现多继承
class A {
public String name;
public int age;
public A(String name, int age) {
super();
this.name = name;
this.age = age;
}
}
class B extends A {
public B(String name, int age) {
super(name, age);
}
}
class C extends B {
public C(String name, int age) {
super(name, age);
}
public void getName() {
System.out.println(name);
}
@Override
public String toString() {
return "name:" + super.name + " age:" + super.age;
}
C类的getName和toString方法,使用到父类A中的变量name和age
希望可以解决你的问题
你的意思是一个类继承多个类还是有多层继承?
如果是一个类继承多个类的话,java里是不行的,可以实现多个接口,打个比方,继承就象是亲爹,接口是干爹,亲爹只有一个,干爹可以有多个
如果是多层继承的话,就比如:
class A{
}
class B extends A{
}
class C extends B{
}
类A B C就实现了多重继承,A中有的方法B中全部由,B中有的方法和属性C中全部有,构造函数不被继承,无参的构造函数被子类默认的以SUPER()实现
java的多重继承指的是一个类可以继承另外一个类,而另外一个类又可以继承别的类,比如A类继承B类,而B类又可以继承C类,这就是java中的多重继承。
需要注意的是,java中有多重继承的概念,但却没有多继承的概念,一个类有且仅有一个父类,这是java单继承的局限性。java中通过实现接口来达到多继承的功能目的。一个类只能继承一个类,但是却可以实现多个接口!