java中的继承

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

这就是分层继承的基本用法,它可以让多个子类继承自一个父类,共享父类的属性和方法,同时还可以定义自己的属性和方法,实现更加复杂的功能。需要注意的是,如果多个子类之间的功能差异较大,不适合使用分层继承,应该考虑其他继承方式。 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值