java继承的再理解

  • 单向继承

在java中子类继承父类,那么子类可以得到父类的非私有的属性以及方法

public class Polymorphic {
    public static void main(String[] args) {
        Animal cat = new Cat();
        System.out.println(cat.name);
        cat.show();
    }
}

class Animal {
    String name = "animal";
    private String age = "15";
    
    public void show(){
        System.out.println("animal");
    }
}

class Cat extends Animal {
    String name = "cat";
    

    @Override
    public void show() {
        System.out.println("cat=="+super.age); //报错
    }
}
  • 多态转化

平时开发时我们会选择使用继承或者接口实现类的方式,对代码进行解耦操作。然后我们就需要使用类转化,也就是多态其中的一种-->父类引用指向子类对象。

father ff = new son()

但是应该注意的是,我们要理解子类和父类之间的关系,子类是对父类的扩展,子类拥有父类所没有的属性和方法。

比如上面的代码,大多人都听过一句话,

  • 对于方法来说:编译看左,运行看右。
  • 对于属性来说:编译看左,运行看左。

所以上面这两句话一定要忘掉!!学习要灵活,不能靠背口诀

  • 我的理解

father ff = new son()

在使用接口或者父类接收子类对象时,那依然是父类对象的引用,那么ff去调用father的方法,那依然是父类自己的方法,只是因为子类重写了父类的方法,那么在调用方法时才会去调用子类重写的方法。对于属性而言没有重写的说法,那么自然ff调用时只会调用父类自己的属性与子类无关。而子类使用super关键字便可以使用父类的非私有的属性和方法。但是在真正操作的时候会发现使用this也可以操作父类的非私有的方法和属性,这是因为继承就意味着拿走。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘个Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值