Java 多态 - 继承方法重写(override)

    Java多态 指的是 同一个行为具有多个不同表现形式或形态的能力。主要包括了 继承方法法重写、同类方法重载、抽象方法、接口 这四种。


    这一期主要介绍 继承方法法重写的应用。继承,就是子类继承父类的特征和行为,使得子类对象具有父类的方法和属性。子类拥有父类的非private的属性和方法,可以用自己的方式实现父类的方法法 override(重写,覆盖),实现了代码的复用,重写从父类那里继承来的方法的,当调用方法时候会优先调用子类的方法(默认就近原则)。不支持多继承,支持多重继承,多重继承提高了耦合性。


    创建一个 Extends 的 package, 再分别创建 2 个 sub_package, 命名为 before & after ; 在 before package 里面,创建 Customer_A 和 Customer_B 的 类。在这 2个类里,分别创建 name 和 age 的 初始变量,和对应的 setName() 、getName() 、setAge() 、getAge() 的方法,以及 buy() 和 movement() 这些方法。



在这里插入图片描述
在这里插入图片描述



在这里插入图片描述
在这里插入图片描述



    在after package 里,创建一个 Human 的类



在这里插入图片描述
在这里插入图片描述



    在 after package 里,再 创建 一个 Customer_A 类,继承 Human 这个父类的。



在这里插入图片描述



    创建 MainTest 类作为程序入口,创建after package 的 Customer_A 的对象,当 设置变量 name 时,会出现报错。



在这里插入图片描述



    原因是刚才创建 Human 时,name 和 age 都是用 private 修饰,根据之前介绍的 4大修饰符机制,是不可以访问的,所以这时必须改为 protected 。



在这里插入图片描述



在这里插入图片描述



    这里直接调用 setName() 方法



在这里插入图片描述



    在 after package 同样创建 Customer_B 去继承父类 Human



在这里插入图片描述



    同样创建 Customer_B 的对象并调用各自的方法。



在这里插入图片描述



    在 after package 的 Customer_A 和 Customer_B 分别添加 在 before package 相同的 movement() 方法。



在这里插入图片描述



在这里插入图片描述



    在MainTest 里 分别调用各自 movement() 的方法。



在这里插入图片描述



    对 after package 的 Customer_A 和 Customer_B 覆写(重写) 父类 Human 的 buy() 方法。通常都会自动加上 @Override 这个标记。( 如果不加都可以,规范化上通常都要加,以便标识)。



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



    在 after package 的 Customer_B 添加 test() 方法,其中 super 是指父类对象,tihs 是指 本类(当前)对象。这一点必须要注意区分。



在这里插入图片描述



    在 MainTest 的 Customer_B 对象调用 test() 方法



在这里插入图片描述



    不支持多继承,支持多重继承



    创建多个 Liveing 类,添加 run() 方法。

在这里插入图片描述



    多继承时,会报错。



在这里插入图片描述



    多重继承就没有问题,在 Human 继承 Living



在这里插入图片描述



    final 修饰的类,则这个类不可以被继承



在这里插入图片描述



在这里插入图片描述



    final 修饰方法法,则这个方法不允许被覆盖(重写)



在这里插入图片描述



在这里插入图片描述



    下一期将讲解多态的抽象方法的应用,有看不懂以上的欢迎留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值