ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java入门-----对象转型

2021-08-03 19:35:08  阅读:147  来源: 互联网

标签:java 入门 子类 void 转型 Dog ----- Animal public


java入门-----对象转型

对象转型

1.向上转型:子类类型 转 父类类型

可以调用父类非私有化属性
可以调用父类非私有化方法
可以调用子类重写父类的方法
不可以调用子类属性和方法

1.动物类

public class Animal {
    public void eat() {
		
	}
	public void shout() {
		
	}
}

2.猫

public class Cat extends Animal{

	public void shout(){
		System.out.println("喵喵喵~~~");
	}
}

3.狗

public class Dog extends Animal{

	public void eat(){
		System.out.println("啃骨头~~~");
	}
}
public class Test01 {
	
	public static void main(String[] args) {
		Animal an = new Dog();//向上转型
        an.eat();
	}
}
啃骨头~~~
注意:向上转型就是多态

多态的缺点:不可以调用子类自己的属性和方法

2.向下转型:父类类型 转 子类类型

注意:
1.向下转型转不好就会出现ClassCastException - 类型转换异常
2.向下转型一定要使用instanceof判断

public class Test01 {
	
	public static void main(String[] args) {
		Animal an = new Dog();//向上转型
		if(an instanceof Cat){//判断an引用指向的对象是否是Cat类型
			Cat cat = (Cat) an;//向下转型
			cat.shout();
		}else if(an instanceof Dog){//判断an引用指向的对象是否是Dog类型
			Dog dog = (Dog) an;//向下转型
			dog.eat();
		}
	}
}
啃骨头~~~

标签:java,入门,子类,void,转型,Dog,-----,Animal,public
来源: https://blog.csdn.net/Chao0748/article/details/119357289

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有