java 不支持多继承,不支持一个类同时继承多类。java的多重类型继承指的是:一个类可以继承另外一个类,而另外一个类又可以继承别的类,下列代码案例说明java 多重类型继承:Chinese 继承 Person,而 Person 继承 Abunal。
class Animal{
int age ;
public Animal(int age){ //类 Animal 带参数的构造方法
this.age= age;
}
}
class Person extends Animal{
String name;
public Person(String name,int n ){ //类 Person 带参数的构造方法
super(n); //首先,调用父类的构造方法
this.name = name;
}
}
class Chinese extends Person{
String birthPlace;
/* 类 Chinese 带参数的构造方法 */
public Chinese(String name,int n,String birthPlace){
super(name,n); //首先,调用父类的构造方
this.birthPlace = birthPlace;
}
public String toString(){ //覆盖父类 Object 的成员方法
String s= "中国人" + name;
s += ",年龄" + age + "岁, 出生地: ";
s += birthPlace;
return s;
}
}
public class M {
public static void main(String args[]){
/* 创建类Chinese的 实体 wang */
Chinese wang = new Chinese("王大明",21, "无锡");
/* 输出 实体 wang 的详情 */
System.out.println(wang.toString());
}
}
interface Animal {
String blood(); //标明是冷血或热血动物的方法, 尚未定义
}
interface Bird extends Animal {
default String fly(){ //jdk1.8 以后为接口规定的、有定义的默认方法
return "this animal flies 120 km per hour.";
}
}
interface Horse extends Animal {
default String run(){ //jdk1.8 以后为接口规定的、有定义的默认方法
return "This animal runs 20 km per hour.";
}
}
class Pegasus implements Bird, Horse{ //多重行为继承、类型继承
public String blood(){//完成/实现 接口 Animal 抽象方法的定义。
return "This animal is warm blooeded.";
}
public String toString(){ //覆盖 父类 Object 的成员方法 toString()
String s ="This animal is Pegasus.n";
s += blood() + "n";
s += fly() + "n";
s += run() + "n";
s += "她是 神话中的 希望之神,叫 珀加索斯, 是一匹 有双翼的飞马。";
return s;
}
}
public class Multiple_Inheritance {
public static void main(String args[]) {
Pegasus p = new Pegasus();//创建飞马 Pegasus 类的一个实体 p
System.out.println(p.toString()); //输出飞马 Pegasus 类的实体 p 的详情
}
}
This animal is Pegasus. This animal is warm blooeded. this animal flies 120 km per hour. This animal runs 20 km per hour. 她是 神话中的 希望之神,叫 珀加索斯, 是一匹 有双翼的飞马。
发布评论
评论(6)
多重行为继承和多重类型继承本就是两个不同的概念啊
这两段代码能不能重新注释一下?
回复
人们常提 java 多重继承,既然是指类的继承,那指的就是java多重类型继承。我的理解,行为继承,就是沿用父类的方法/行为,就是行为的继承。继承的主要方面就是:沿用属性和行为。
回复
Upon your request annotation has been made accordingly. 按照你的要求,已作成相应的注释。
java 不支持多继承,不支持一个类同时继承多类。java的多重类型继承指的是:一个类可以继承另外一个类,而另外一个类又可以继承别的类,下列代码案例说明java 多重类型继承:Chinese 继承 Person,而 Person 继承 Abunal。
中国人王大明,年龄21岁, 出生地: 无锡
类定义是由 属性和行为(方法) 组成的。因此,类型继承就包含了继承超类的行为(方法)。鉴于 jdk1.8 以后的版本,允许借口中有缺省/默认的方法,编写如下代码,演示 java 的 多重类型/多重行为。
This animal is Pegasus.
This animal is warm blooeded.
this animal flies 120 km per hour.
This animal runs 20 km per hour.
她是 神话中的 希望之神,叫 珀加索斯, 是一匹 有双翼的飞马。
多重类型继承 -> 基于Class的继承, Java只能允许一个.
多重行为继承-> 表现为接口, 可以有多个.