IDEA-多态性、使用多态性的好处

面向对象三大特征:封装性、继承性、多态性。
extends继承后者implements实现,是多态性的前提。

代码当中体现多态性,其实就是一句话,父类引用指向子类对象。
格式:
父类名称 对象名 = new 子类名称();
或者:
接口名称 对象名 = new 实现类名称();

左父右子就是多态

public class Demo01Multi {
    public static void main(String[] args) {
        //使用多态的写法
        //左侧父类的引用,指向了右侧子类的对象
        //成员方法new的是谁,就用谁的方法
        Fu obj = new Zi();
        obj.method();
        obj.methodFu();
    }
}

在多态的代码中:
成员方法的访问规则是
看new的是谁,就优先用谁,没有则向上找。

访问成员变量的两种方式:
1.直接通过对象名称访问成员变量,看等号左边是谁,优先用谁,没有则向上找
2.间接通过成员方法访问成员变量,看该方法属于谁,优先用谁,没有则向上找

口诀:编译看左边,运行看右边
对比一下:
成员变量:编译看左边,运行还看左边。
成员方法:编译看左边,运行看右边。

public class Demo02MultiMethod {
    public static void main(String[] args) {
        Fu obj = new Zi();//多态
        obj.method();//父子类都有,优先用子
        obj.methodFu();//子类没有,父类有,向上找到父类。
        //编译看左边,左边是Fu,Fu当中没有methodZi方法,所以编译报错
//        obj.methodZi();//错误写法
    }
}

使用多态的好处
假设你是一个老板,手下有员工类(父类),员工包括讲师和助教(子类)
如果不用多态之用子类,写法是
Teacher one = new Teacher();
one.work;//讲课
Assistant two = new Assistant();
two.work;//辅导

对于老板唯一要做的是就是调用work方法,其他的功能不关心。

如果使用多态就是:
Employee one = new Teacher();
one.work();//讲课
Employee two = new Assistant();
two.work();//辅导

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值