java 中父类引用指向子类对象时
来源:互联网 发布:润和软件待遇 编辑:程序博客网 时间:2024/05/01 14:34
继承和方法重写已经很熟悉了,这次
Student.java
Test.java
输出结果为:
主要验证一下,当一个父类的引用指向一个对象的时候,它会调用子类的方法,而不是父类的。
引用在栈内存中存在对象的内存地址。真正的对象(通过 new Student()创建的)存放在堆内存里。
在这块堆内存区域内,存在的是子类的属性(包括自己特有的,以及通过super()构造方法中从父类获得的)
和方法(继承父类但没有覆盖的,以及覆盖父类的方法和自己特有的),尽管引用是声明为父类的引用,
但是它指向的子类的对象,在执行方法的时候,是通过引用指向的堆内存区域内执行的。也就是到底执行父类
方法还是子类方法是由对象决定的,跟引用没有直接关系。
演示代码如下:
Person.java
public class Person{ private String name; public Person(){} public void setName(String name){ this.name = name; } public String getName(){ return this.name; } public void introduce(){ System.out.println("Hello, I'm a Person object, and my name is " +getName()); }}
Student.java
public class Student extends Person{ public Student(){ super(); } public void introduce(){ System.out.println("I'm a Student object and my name is " +getName()); }}
Test.java
public class Test{ public static void main(String[] args){ Person p = new Student(); p.setName("^-^"); p.introduce(); }}
输出结果为:
I'm a Student object and my name is ^-^
- java 中父类引用指向子类对象时
- java中父类对象引用指向子类对象
- java中父类对象引用指向子类对象
- java中父类对象引用指向子类对象
- Java 父类引用指向子类对象
- java父类引用指向子类对象
- java父类引用指向子类对象
- java 父类引用指向子类对象
- java父类引用指向子类对象
- Java父类对象引用指向子类对象
- Java 中深层理解父类引用指向子类对象
- java多态,如何理解父类引用指向子类对象
- Java 中深层理解父类引用指向子类对象
- Java多态--父类引用指向子类对象
- java中protected 继承 父类引用指向子类对象
- JAVA中的父类引用指向子类对象
- Java多态性 父类引用指向子类对象
- java多态性,父类引用指向子类对象
- 教你如何用Qt做透明的窗体,setMask,Qt,Opacity
- Android --- 图片处理的方法
- iphone开发资源汇总
- 初入Ubuntu 10.4 (5) –解决root用户下”正在等待声音系统响应”
- gcc中include文件的搜索路径
- java 中父类引用指向子类对象时
- Kinect For Kids:我们拥抱的其实是虚无
- android:windowSoftInputMode
- 我是新手
- Javascript 使用攻略
- Mongo登录
- OpenLayers深入浅出(2)----map全解
- 开源博客公司Automattic投资本地电子商务公司OwnLocal
- 脚本中/dev/null 2>&1的用法