Java中的多态&&对象的转型

Java中的多态

多态的格式:
父类名称 对象名 = new 子类名称();
或者
接口名称 对象名 = new 实现类名称();

new什么,就运行什么结果,如果子类中没有,向上查找运行。
访问成员变量的两种方法:
1.直接通过对象名称访问成员变量,看等号左边是谁,优先用谁,没有则向上查找

2.间接通过成员方法访问
注意:子类是不能覆盖重写父类中的成员变量,只能覆盖重写父类中的方法
访问成员方法
看new的是谁,就优选用谁,没有则向上找;
编译看左边,运行看右边。

使用多态的好处;
无论右边new出一个什么样的对象,左边都不需要发生改变。

对象的转型

对象的向上转型
对象的向上转型相当于多态写法
格式:父类名称 对象名 = new 子类名称();
Animal animal = new Cat();
Animal(父类)必须为抽象类
//含义创建一个子类对象,把它当做父类来看待
小范围转向大范围

对象的向下转型
引文:向上转型一定是安全的,没有什么问题,正确的,但是也有一个弊端,对象一旦向上转型为父类,那么就无法调用子类原本的内容。
解决方案向下转型【还原】。
格式: 子类名称 对象名 = (子类名称) 父类对象;
含义: 将父类对像还原成为本来的子类对象

Animal animal = new Cat();//本来是猫,向上转型为动物
Cat cat = (Cat) animal;//还原为猫

instanceof
查出父类引用对象,不来子类是什么
格式: 对象 instanceof 类名称

Animal animal = new Cat();//本来是猫,向上转型为动物
animal.eat();

if(animal instanceof cat){
	Cat cat = (Cat) animal;
	cat.catchMouse();
	}
if(animal instanceof dog){
	Dog dog = (Dog) animal;
	dog.watchHouse();
	}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值