面向对象--梳理Java继承重点

1、子类继承父类 用extends,子类继承(派生、调用)父类包括Object的非private的所有属性和方法。

2、子类对于父类private属性和方法可以通过set、get操作。

3、父类和子类同名的属性/变量,而子类对象要调用时,父类用super.、子类用this.区分,子类方法的同名参数不用管默认不用修饰符。

4、什么是构造器或构造方法?构造器就是和隶属类同名、无返回值类型也没有void的方法。每个类里面都隐藏一个无参构造器,子类无参构造器会随父类无参构造器消失而消失。每次依子类new一个对象的时候都会自动调用这构造器,当子类被调用构造器,父类也会被调用构造器。构造器用于内定初始值。

也可以自己建一个有参构造器,这时必须把无参显式出来。因为方法可以重载,所以有参构造器因参数不同可以有很多个。
另一方面,调用父类构造器,子类的构造器里会默认执行隐藏代码super()。子类无参构造器只能调用父类无参构造器(super()),子类有参构造器只能调用父类有参构造器(super(参数))。super()(有参或无参)隐式时默认位于构造器第一行,显式也必须位于构造器第一行。

5、this()(有参或无参)和super()(有参或无参)用法类似,都只能在构造器内部使用但前者不是隐藏的,表示调用自己。同时它也必须处于第一行位置,所以不能和super()(有参或无参)同时显式。this()表示调用无参构造器,this(参数)表示调用有参构造器,因为自己调用自己会导致递归调用错误,所以只能有参调无参,无参调有参。this()没有继承也可以使用,表示调用者本身,super()只能在继承条件才可以使用,表示父类对象的引用。

6、什么是重写?重写也叫覆写。子类继承的父类的方法,该方法须和父类方法名字、参数列表相同,但改写了内容,这就是重写。重写和属性无关,只有父类的虚方法(除了静态方法、构造器、final方法、私有方法以外的方法)才能重写。重写方法修饰符可扩大不能缩小:public    >    protected    >    default    >    private  ;抛出的异常可缩小不可扩大:Exception(大)  -->   ClassNotFountException(小)。重写后,调用父类方法用super.。
为什么需要重写?父类的功能子类不一定需要或满足。

7、静态方法是按照表面 / 声明类型来执行的;非静态方法是按照实际类型执行的,这里就是执行了方法重写。


8、什么是多态?同一方法,不同对象使用,产生不同效果。我的理解就是不同子类用不同方式重写了父类方法。
多态存在的条件:1.有继承关系   2.子类重写父类方法   3.父类引用指向子类对象

9、动态绑定:对象要调用哪个方法由实际类型决定。


10、idea菜单code下generate里可以一键创建构造器、get/set和重写方法。

11、父类引用指向的子类对象不能调用子类独有的方法。

 那么如何合法调用子类方法呢?用强制转换(高(Father)-->低(Son))。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值