1.Single level inheritance
Single level inheritance是Java中的一种继承方式,指的是一个子类继承自一个父类。在单层继承中,子类只有一个父类,并且继承父类的属性和方法。
class Animal {
void eat() {
System.out.println("Animal is eating");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.eat(); // 继承自 Animal 类
myDog.bark(); // 自身方法
}
}
在上面的示例中,Dog
类继承自Animal
类。因此,Dog
类继承了Animal
类的eat()
方法,同时也定义了自己的bark()
方法。在Main
类中,我们创建了一个Dog
类的实例,并分别调用了它继承自Animal
类的eat()
方法和自己定义的bark()
方法。
输出结果为
Animal is eating
Dog is barking
这就是单层继承的基本用法,它可以让子类继承父类的所有属性和方法,并且可以在子类中添加自己的属性和方法,实现更加复杂的功能。
2.Multilevel inheritance
Multilevel inheritance是Java中的一种继承方式,指的是一个子类继承自一个父类,同时也作为另一个子类的父类。在多层继承中,子类可以有一个以上的父类,并且每个父类可以有自己的父类。
class Animal {
void eat() {
System.out.println("Animal is eating");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog is barking");
}
}
class Labrador extends Dog {
void play() {
System.out.println("Labrador is playing");
}
}
public class Main {
public static void main(String[] args) {
Labrador myLabrador = new Labrador();
myLabrador.eat(); // 继承自 Animal 类
myLabrador.bark(); // 继承自 Dog 类
myLabrador.play(); // 自身方法
}
}
在上面的示例中,Labrador
类继承自Dog
类,Dog
类继承自Animal
类。因此,Labrador
类继承了Animal
类的eat()
方法和Dog
类的bark()
方法,同时也定义了自己的play()
方法。在Main
类中,我们创建了一个Labrador
类的实例,并分别调用了它继承自Animal
类和Dog
类的方法,以及自己定义的play()
方法。
输出结果为:
Animal is eating
Dog is barking
Labrador is playing
这就是多层继承的基本用法,它可以让子类继承父类和祖先类的所有属性和方法,并且可以在子类中添加自己的属性和方法,实现更加复杂的功能。需要注意的是,多层继承可能导致继承层次过深,从而导致代码的复杂性增加,应该避免滥用多层继承。
3.Hierarchical inheritance
Hierarchical inheritance是Java中的一种继承方式,指的是一个父类拥有多个子类,也就是一个父类可以作为多个子类的父类。在分层继承中,父类定义了一些属性和方法,而子类继承了这些属性和方法,同时还可以定义自己的属性和方法。
class Animal {
void eat() {
System.out.println("Animal is eating");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog is barking");
}
}
class Cat extends Animal {
void meow() {
System.out.println("Cat is meowing");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
Cat myCat = new Cat();
myDog.eat(); // 继承自 Animal 类
myDog.bark(); // 自身方法
myCat.eat(); // 继承自 Animal 类
myCat.meow(); // 自身方法
}
}
在上面的示例中,Dog
类和Cat
类都继承自Animal
类,因此它们都继承了Animal
类的eat()
方法,并分别定义了自己的bark()
方法和meow()
方法。在Main
类中,我们创建了一个Dog
类的实例和一个Cat
类的实例,并分别调用了它们继承自Animal
类的eat()
方法和自己定义的方法。
输出结果为:
Animal is eating
Dog is barking
Animal is eating
Cat is meowing
这就是分层继承的基本用法,它可以让多个子类继承自一个父类,共享父类的属性和方法,同时还可以定义自己的属性和方法,实现更加复杂的功能。需要注意的是,如果多个子类之间的功能差异较大,不适合使用分层继承,应该考虑其他继承方式。