关闭

【Java学习-J.160601.0.10】关于父类引用指向子类对象

标签: 面向对象java父类引用指向子类对象
184人阅读 评论(0) 收藏 举报
分类:

今天,在复习时遇到一些的代码[Animal(父类) Dog(子类)]:

<span style="font-size:18px;">Animal dog=new Dog();</span>

这是什么?

这种用法叫做“父类引用指向子类对象”,是指定义一个父类的引用,指向子类的创建的对象。功能上相当于子类的“向上转型”。

<span style="font-size:18px;">Animal A=new Animal();
Dog dog=new Dog();
A=dog;</span>
就是将子类的对象赋给父类的引用。new Dog()是实例化一个没有名称的对象,然后转型给父类A。


用来做什么的?

一般来说,一个对象创建实例后就定死了,比如dog,如果程序的变量写dog的话,万一以后发生变化就要改代码了,那么就不要写死dog,而是写父类Animal,那么以后用到Animal的地方,就用dog实例,cat实例取代,不用改实例名了。体现了面向对象的“多态”。

<span style="font-size:18px;">public class caseDemo {
	public static void main(String[] args) {
		Animal a=new Animal();
		Animal d=new Dog();//父类引用(Animal)指向子类对象
		Animal c=new Cat();
		a.showlegs();
		d.showlegs();
		c.showlegs();	
	}
}

class Animal{
	String type="动物";
	public void showlegs(){
		System.out.println(type+":吃荤素");
	}
}
class Dog extends Animal{
	String type="狗";
	public void showlegs(){
		System.out.println(type+":吃骨头");
	}
}
class Cat extends Animal{
	String type="猫";
	public void showlegs(){
		System.out.println(type+":吃鱼");
	}</span>
} 

运行结果是:

动物:吃荤素
狗:吃骨头
猫:吃鱼




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4513次
    • 积分:248
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类