继承的细节

(1)、子类继承父类的所有属性和方法,但是私有属性和方法不能直接使用,可以通过公共方法访问

(2)、子类必须首先调用父类的无参构造器,且调用一直追溯到Object类的构造器,原因是子类的构造器第一行默认是super(),可以省略,且super必须放在第一行,且只能在构造器中使用

(3)、如果父类没有无参构造器,则子类的构造器第一行必须用super调用父类的一个构造器

(4)、子类只能直接继承一个父类

(5)、不能滥用继承,必须满足is-a的关系,一般是认为父类是子类的抽象提取

(6)、(重点)子类与父类可以拥有相同的属性名和方法名,在内存栈中同时存在子类和父类的相同属性名和方法名,如果子类实例调用某个属性和方法,先从子类找,如果有且可以访问,就调用这个,如果不行就向上父类依次寻找,直到找到为止,如果寻找途中找到该属性名或者方法名,但是不能访问,则停止寻找,直接报错(这里子类的属性没有覆盖父类的属性)

class GrandPa{
    String name = "大头爷爷";
    String hobby = "旅游";
}
class Father extends GrandPa{
    String name = "大头爸爸";
    int age = 39;
}
class Son extends Father{
    String name = "大头儿子";
}
Son son = new Son();
//son.name = "大头儿子";
//son.age = "39";
//son.hobby = "旅游",如果String hobby添加了private,则直接报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值