java 父类引用指向子类对象
2016-02-02 22:29
567 查看
1. 无论是泛型还是普通父类引用指向子类对象,父类引用可见范围都是父类自己的变量或函数
2. 说明见注释
代码如下:父类
package com.atguigu.spring.beans;
public class Father {
public String fatherName;
public String fatherGetName(){
return "";
}
public void sonUnImplementMethod(){
}
}
子类
2. 说明见注释
代码如下:父类
package com.atguigu.spring.beans;
public class Father {
public String fatherName;
public String fatherGetName(){
return "";
}
public void sonUnImplementMethod(){
}
}
子类
package com.atguigu.spring.beans; import java.util.ArrayList; import java.util.List; /** * * @author jaloLi * @usage 综上所述(无论泛型,还是普通引用),如果父类引用指向子类对象,父类引用可见范围都是父类自己的变量或函数 * */ public class Son extends Father{ public String sonName; public Son(String name){ this.sonName = name + fatherName;//正确,子类直接使用,父类的字段 sonUnImplementMethod();//正确,子类直接使用,父类的函数,即使子类未实现的父类函数,子类也可以调用 } @Override public String fatherGetName() { return super.fatherGetName() + sonName; } public String sonGetName() { return sonName; } public static void main(String args[]){ List<Father> list = new ArrayList<Father>(); Son son = new Son("aaa"); Son son1 = new Son("bbb"); Son son2 = new Son("ccc"); list.add(son); list.add(son1); list.add(son2); System.out.println(list.get(0).fatherGetName());//正确,list 中是father 类引用,father 引用的可见范围只是子类的继承函数 System.out.println(list.get(0).sonGetName());//错误,father 类引用无法引用非继承函数 System.out.println(list.get(0).fatherName);//正确,father 引用的可见范围只是子类的继承字段 System.out.println(list.get(0).sonName);//错误 } }
相关文章推荐
- Java RMI详解
- 【RxJava】Observable基本方法
- 基于SocketChannel的即时聊天程序
- eclipse下使用github
- Java学习:Java字符串处理
- java 双向链表实现双端队列
- java集合基础
- Java IO流学习总结
- Struts2的工作原理
- java 单链表实现队列
- Spring-定时任务之Quartz
- Maven学习 (三) 使用m2eclipse创建web项目
- java.io.Serializable
- 应用springMVC时如果配置URL映射时如下配置
- Java基础(十)——类加载机制
- Thinking in Java---再谈线程通信
- STRUTS2核心控制器:FilterDispatcher
- java中重载和重写的区别是什么?
- spring依赖注入
- java 单链表实现栈