面向对象 多态 抽象类 接口(8)

抓住规则

1.创建子类实例的时候,会先构造父类的实例(调用父类的构造方法)

2.初始化顺序:先执行就地初始化,再执行代码块,再执行构造方法

 从main 方法开始看

1.newZ()的时候,会先构造父类实例 进入X中执行

2.构造X实例的时候,先就地初始化,再调用构造方法,于是进入Y执行

3.执行Y的构造方法 打印Y

4.执行X的构造方法 打印X

5.父类X已经准备就绪,开始进行子类Z的初始化

6.对于Z来说也是先执行就地初始化,再调用构造方法

7.就地初始化就是进入Y执行,只需调用构造方法即可,打印Y

8.执行Z自身的构造方法,打印Z

动态绑定

如果父类中包含的方法在子类中有对应的同名同参的方法,就会进行同参绑定

JAVA中所有的类,都是之间或者间接继承 Object

如果写了某个类,没写extends,默认继承自Object

多态 是一种程序设计的思想方法,具体的语法体现,向上转型,方法重写,动态绑定

多态直观的理解“一个引用,对应到多种形态(不同类型的实例)”

多态:一个引用能表现出多种不同的形态

a.多态是封装的更进一步,让类的使用者不需要关注具体对象的类型,也能正确使用

b.方便扩展,未来如果需要新增新的子类,对于类的使用者来说影响很小

c.消灭一些分支语句,降低程序的复杂度

向下转型的场景:

有些方法只是在子类中存在,但是父类中不存在

此时使用多态的方式就无法执行到对应的子类的方法了

必须把父类引用先转回成子类的引用,然后再调用对应的方法

 接口是抽象类的更进一步(比抽象类还抽象)

抽象类只是不能实例化,但是其他各个方面都和普通的类差不多

接口就更抽象了,不光不能实例化,同时也不具备类的各种特性

接口中也可以放抽象方法,这里的抽象方法不用写abstract 关键字(写或者不写都是抽象方法)

接口中不能放普通的方法 也不能放普通的属性

只能放public static final 修饰的属性

接口不能继承自其他类 但是可以继承自其他的接口

接口不能被类继承,而是被其他的类“实现”

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值