黑马程序员技术交流社区
标题:
父类变量引用子类对象有哪些优缺点?
[打印本页]
作者:
noiary
时间:
2014-8-21 15:06
标题:
父类变量引用子类对象有哪些优缺点?
RT 父类变量引用子类对象后,有哪些优势和缺点?
比如下面代码:
public static void main(String[] args) {
//fill the people array with Student and Employee objects.
Person[] people = new Person[2];
people[0] = new Employee("XiaoZhang", 50000, 1989, 2, 15);
people[1] = new Student("XiaoMing", "JAVA");
//print out names and description of all Person objects.
for(Person p : people)
print(p.getName() + ", " + p.getDescription());
}
复制代码
我知道可以集中调用子类共同拥有的方法 ,如gerName()等, 这应该算优势之一吧 , 还有其他的吗, 有哪些缺点?
另外,people[0]为什么不能调用Employee的getSalary()方法?
如:
people[0].getSalary()
复制代码
这样会报错,说找不到符号:方法getSalary(),为什么呢?
PersonTest.java:23: 找不到符号
符号: 方法 getSalary()
位置: 类 Person
print(people[0].getSalary());
复制代码
作者:
笑脸迷人
时间:
2014-8-21 18:34
提高代码的健壮性
父类变量引用子类对象:最常用的就是接口!
比如,某个函数需要接受某个接口类型的变量,那么我只要实现了这个接口的变量类型就都能使用这个功能
更简单点:当我们设计电脑网卡插槽的时候,我们不知道以后可能会出现什么类型的网卡,但我们给这些网卡设置一些标准,就是接口了~只要后面出现的网卡满足我这个接口的要求,电脑就能使用这个网卡
people[0]为什么不能调用Employee的getSalary()方法?
很简单,比如jdk 1.4能用jdk 1.5的新特性么!当然不能,后面出现的事物(子类)的一些新特性(新方法),现在的事物(父类)是不知道的,也就是不能使用的!
作者:
noiary
时间:
2014-8-23 08:48
笑脸迷人 发表于 2014-8-21 18:34
提高代码的健壮性
父类变量引用子类对象:最常用的就是接口!
比如,某个函数需要接受某个接口类型的变量, ...
很全面 ,谢谢啦~
提问的时候还没学到这里,我以为学过了,自己在哪敲代码,结果报错,郁闷好好久 .
多敲代码最实用,每敲一遍,脉络清晰很多 . 一起加油小伙伴~
作者:
iefegend
时间:
2014-8-23 10:32
路过,,,:)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2