浅谈Java继承

本文探讨了Java中的继承概念,包括其好处、格式、特点以及子类能继承父类的内容。Java支持单继承,每个类直接或间接继承自Object类,子类可以继承父类的属性和行为,但不能继承私有构造方法。同时,文章强调了构造方法调用的顺序和方法查找机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  继承是面向对象三大特征之一,可以让类与类之间产生关系,其余两特征是封装和多态,在本章浅谈一下继承。


一、继承的概念、好处、格式?

1、继承的概念

  即从已有的类(父类)中派生出新的类(子类),子类可以得到父类的属性和行为,在父类的基础上进行扩展。

2、继承的好处

  可以将多个子类中重复的代码抽取到父类中,子类可以直接使用,减少代码的冗余,并且提高代码的复用性。

3、继承的格式

修饰符 class子类 extends 父类{ }

package dome;

public class Animal {
    public void eat(){
        System.out.println("吃东西");
    }
    public void sleep(String name){
        System.out.println(name+"睡大觉");
    }
}
package dome;

public class Dog extends Animal {
    public void eat(){
        System.out.println("小狗吃骨头!");
    }

    public void lookHome(){
        System.out.println("小狗看家!");
    }

}
package dome;

public class Cat extends Animal {
    public void eat(){
        System.out.println("小猫吃鱼!");
    }
    public void catchMouse(){
        System.out.println("小猫抓老鼠!");
    }
}
package dome;

public class Test {
    public static void main(String[] args) {
        //规范   实现
        //创建对象并调用方法
        //创建猫对象
        Cat cat = new Cat();
        cat.eat();
        cat.sleep("cat");
        cat.catchMouse();
        System.out.println("-------------");
        //创建狗对象;
        Dog dog = new Dog();
        dog.eat();
        dog.sleep("dog");
        dog.lookHome();
    }
}

 运行结果:

 

二、继承的特点

1、java只支持单继承,不支持多继承,可以多层继承

单继承:一个子类只能继承一个父类。

多继承:一个子类有多个父类,多继承可以通过接口的方式间接实现。

多层继承:子类A可以继承父类B,父类B可以继承父类C。(C是A的间接父类 ) 

2、每一个类都直接或者间接的的继承于Object类。

三、子类能继承父类中的哪些?

 拿上面的代码举例:

在Animal类中新建私有的构造方法

package dome;

public class Animal {
    public void eat(){
        System.out.println("吃东西");
    }
    private void feed(){
        System.out.println("吃点啥");
    }//修饰符是private,只能在本类中使用
    public void sleep(String name){
        System.out.println(name+"睡大觉");
    }
}

 会进行报错

 注意事项:

 如果要显示调用父类中的构造方法,必须在子类的构造方法体中的第一行使用super()方法。该方法会调用父类相应的构造方法来完成子类对象初始化工作。

四、 顺序

在继承中,若子类重写了父类的方法

 编译的时候,先看父类有无相应方法,没有就在子类中找

执行的时候,先看子类有无相应方法,没有就去父类中找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值