【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>
} 

运行结果是:

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




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

相关文章推荐

父类引用指向子类对象

  • 2012年11月24日 15:59
  • 3KB
  • 下载

J2SE基础夯实系列之父类引用指向子类对象

父类引用指向子类对象应该说是比较困难的知识点,多态,面向对象等方面的知识看似很简单的话,其实包含着很多规范在里面。              从对象的内存角度来理解试试.        假...

java中的多态-父类引用指向子类对象

这个是java面对对象3大特征之一package forDemo;public class DuotaiDemo { static abstract class machine{ ...

JAVA中的父类引用指向子类对象

父类引用指向子类对象指的是: 例如父类Animal,子类Cat,Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。 Animal animal =...

父类引用指向子类对象(Java中的多态)

class Father {  void print() { System.out.println("Father print"); }  }  class Son extends Fa...

Java中,父类引用指向子类对象的问题分析

父类引用指向子类对象指的是:例如父类Animal,子类Cat,Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。Animal animal = new Cat...

java多态,如何理解父类引用指向子类对象

要理解多态性,首先要知道什么是“向上转型”。         我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类。我可以通过   Cat c = new Cat(); 实例化一个...
  • Simtice
  • Simtice
  • 2011年03月11日 15:46
  • 1465

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

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

java多态,如何理解父类引用指向子类对象

java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是“向上转型”。         我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类。我可以通过...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java学习-J.160601.0.10】关于父类引用指向子类对象
举报原因:
原因补充:

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