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

原创 2016年06月01日 22:20:19

今天,在复习时遇到一些的代码[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>
} 

运行结果是:

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




版权声明:本文为博主原创文章,未经博主允许不得转载。

Java父类对象引用指向子类对象

今天看到一行代码
  • u013771907
  • u013771907
  • 2014年04月06日 21:49
  • 532

JAVA父类引用指向子类的对象是什么意思?有什么作用?

转自:http://zhidao.baidu.com/question/397089741.html JAVA父类引用指向子类的对象是什么意思?有什么作用? 给你举个简单的例子吧。...
  • suyu_yuan
  • suyu_yuan
  • 2016年06月22日 10:09
  • 2762

java 父类引用指向子类对象---动态绑定之易错点详解

知识点: 1、java 中父类引用指向子类对象时动态绑定针对的只是子类重写的成员方法; 2、父类引用指向子类对象时,子类如果重写了父类的可重写方法(非private、非 final 方法),那么这个对...
  • u014143369
  • u014143369
  • 2016年11月22日 16:56
  • 197

Java父类引用指向子类对象静态绑定和动态绑定问题

Base{ String name = Base; } Son{ String name = son; } Base obj = new Son(); obj.name = Base
  • u011769706
  • u011769706
  • 2014年10月24日 15:34
  • 700

java继承实质、父类引用指向子类对象(多态)、声明时类型、运行时类型

继承是面向对象的三大特征(封装、继承和多态)之一,也是java语言的重要特性。 那么,继承父类的成员变量和继承父类的方法有什么区别吗?答案是肯定的。有的人甚至都不知道这个问题的存在。 继承成员变量...
  • xuejingfu1
  • xuejingfu1
  • 2016年05月25日 12:36
  • 1767

C#怎么理解“父类引用指向子类对象”

父类代码如下:public class Person{//父类的构造函数public Person(){Console.WriteLine("Person");}//父类的虚方法public virt...
  • david_520042
  • david_520042
  • 2010年11月22日 15:43
  • 1515

为什么父类引用可以指向子类对象 子类引用不能指向父类对象 泛型

假设有父类Fu ,其子类为Zi ,从对象的内存角度,假设Fu类里面的变量占内存2M, Zi 类里的变量占内存1M: Fu f = new Fu ();//系统将分配2M内存 Zi z = ne...
  • lifewinnerforever
  • lifewinnerforever
  • 2017年05月29日 11:39
  • 581

Java 中深层理解父类引用指向子类对象

从对象的内存角度来理解试试. 假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,它里面的变量需要占用0.5M内存. 现在通过代码来看看内存的分配情况:Father...
  • Frank_Jay
  • Frank_Jay
  • 2015年10月12日 21:44
  • 554

父类引用指向子类对象的理解

虽然接触java已经好长时间了,但对于一些知识点,还是有些模糊,就比如今天说的这个。 接触java的人都知道,继承是面向对象的三个特征之一(封装、继承、多态),继承中有一对概念,即父类和子类。他们通过...
  • u013630932
  • u013630932
  • 2017年06月29日 13:53
  • 133

关于“父类引用指向子类对象”

很多人在初次接触设计模式的时候,最大的疑惑莫过于碰到这样的句子:(父类Animal和子类Dog)  Animal a2 = new Dog(); 这是什么玩意儿?究竟有什么用途,我直接...
  • HONKER_123
  • HONKER_123
  • 2014年08月05日 16:53
  • 970
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java学习-J.160601.0.10】关于父类引用指向子类对象
举报原因:
原因补充:

(最多只允许输入30个字)