java学习笔记-多态

多态
同一个对象,在不同时刻表现出来的不同形态
多态的前提和体现
1.有继承/实现关系
2.有方法重写
3.有父类引用指向子类对象
多态中成员的访问特点
java引用变量有两个类型,编译时类型和运行时类型
编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。
1.访问成员变量的特点
一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能在访问子类中添加的特有的属性,
意思就是说,通过父类的引用变量去调用子类中特有的成员变量,这是不能通过的;访问共有的成员变量,编译看左边,运行依旧看左边,通过多态的方式去访问变量,访问的是父类的变量。
2.访问成员方法的特点
通过多态的方式去访问子类中特有的方法,这是不能通过编译的;访问的是子类的重写的方法,编译看左边,运行看右边,输出的是子类的方法;
多态的好处和弊端
好处:
提高了程序的扩展性
在定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
弊端:
不能使用子类的特有功能
多态中的转型
向上转型
从子到父,父类引用指向子类对象
使用格式 父类 变量名=new子类();

向下转型
从父到子,父类引用转为子类对象
使用格式 子类 变量名 =(子类)父变量名;(解决多态中不能使用子类的特有动能的问题);
实现多态的前提
1.需要存在继承或者实现关系;
2.要有覆盖操作
多态性,是面向对象中最重要的概念,在java中有两种体现
1.方法的重载和重写;
重载(本类中的同名方法,体现相同的名称方法实现不同的逻辑)
重写(子类对父类方法的覆盖,子类可以使用和父类相同的方法名,覆盖掉父类的逻辑,父类的方法,想要修改逻辑,但是有别的代码在调用父类的方法,可以考虑用子类继承父类,重写父类的方法。)

java引用变量有两个类型,编译时类型和运行时类型
编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。同时要注意,一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能在访问子类中添加的属性和方法,意思就是说,通过父类的引用变量去调用子类中特有的成员,这是不能通过的;
若编译时类型和运行时类型不一致的时候,就会出现多态,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值