JAVA 多态性

多态性

在这里插入图片描述
代码示例:

package com.imooc;

public class Inital {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Anmial obj1=new Anmial();
		Anmial obj2=new Dog();//父类的引用是可以指向子类对象
		//Dog obj3=new Anmial();//反之,不可使用
		Dog boj4=new Dog();
		Anmial obj3=new cat();
		obj1.eat();
		obj2.eat();
		obj3.eat();
		boj4.aaa();
	}

}

package com.imooc;

public class Anmial {
	public void eat() {
		System.out.println("这是啥");
	}
}

package com.imooc;

public class Dog extends Anmial{
	public void eat() {
		System.out.println("这是子类");
	}
	public void aaa() {
		System.out.println("这是我单独的哦");
	}
}

注意:子类中独有的类,父类不能直接进行调用

引用类型转换

通过instanceof运算符避免类型转换的安全性问题
instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:
boolean result = obj instanceof Class
  其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。

注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。
 
样例:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值