JAVA基础(一)继承、封装、多态

继承

复用父类的方法和域,还可以在此基础上添加新的方法和域。

  1. 构造器:对于继承自父类的私有域,子类不能直接访问,在进行初始化时,需要通过super调用父类构造器,该调用语句必须是子类构造器的第一条语句。若没有显式地调用父类构造器,则将自动调用父类默认的构造器(不带参数)。
    若父类没有不带参数的构造器,子类构造器中也未显式调用父类其他构造器,则java编译器会报错。

  2. 继承实现多态:一个类变量既可以引用该类本身的对象实例,也可以引用该类的子类对象实例。(引用多态)
    继承实现多态时的方法调用:(方法多态)
    A.编译器根据对象的声明类型和方法名获得所有可能被调用的候选方法。(该类本身和其父类中public的所有同名方法(重写),方法的参数列表可能不同(重载))
    B.编译器匹配参数列表,找到具有相同签名的方法(方法名和参数列表构成方法签名)。若子类和父类有签名相同的方法,子类方法会覆盖父类方法。(重写)
    C.编译器的静态绑定:被private、static、final修饰的方法和构造器,编译器都准确地知道该用哪个方法。
    D.编译器的动态绑定(即多态的实现):调用哪个方法依赖于隐式参数的实际类型,在运行期间动态绑定。虚拟机预先为每个类创建方法表,列出所有方法的签名和实际调用的方法。运行时,虚拟机查找该表来决定调用哪个方法——方法签名相同时,优先子类,否则父类,以此类推。
    在这里插入图片描述

  3. final修饰的类、方法不允许被继承、重写。

  4. 可以通过强转让子类引用它的超类对象。强转前用instanceof检查该对象的实际类型是否是该子类,若不判断,类型不匹配时会抛出ClassCastException异常。

  5. Object类是所有类的超类。

  6. Java中类的继承是单继承,但可以实现多个接口。

  7. 实例化一个子类的顺序为:
    父类静态成员及静态初始化块
    子类静态成员及静态初始化块
    父类实例成员及实例初始化块
    父类构造方法
    子类实例成员及实例初始化块
    子类构造方法

封装

隐藏对象的属性和实现细节,仅对外提供接口。可以通过关键字控制域和方法的访问级别。
通过封装,可以实现修改某个类,而不影响调用该类的代码。
减少耦合。

多态

同一个行为具有多种表现形式。
同一个接口,根据不同的实例而执行不同的操作。
Java中的多态体现如上所述,基于继承

参考:Java核心技术卷一第十版

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值