多态的缺陷:“覆盖私有方法”
2011-10-11 15:27
162 查看
程序如下:
package polymorphism;
import static net.mindview.util.print.*;
public class PrivateOverride{
private void f() {print("private f()");}
public static void main(String [] args){
PrivateOverride po=new Derived();
po.f();
}
}
class Derived extends PrivateOverride{
public void f(){print("public f()");}
}
/* Output:
private f()
*/
我们所期望的输出是public f (),但是由于private方法被自动认为是final方法,而且对导出类是屏蔽的。因此,在这种情况下,Derived类中的f()方法就是一个全新的方法;既然基类中的f方法在子类中不可见,因此也不能被重载。
package polymorphism;
import static net.mindview.util.print.*;
public class PrivateOverride{
private void f() {print("private f()");}
public static void main(String [] args){
PrivateOverride po=new Derived();
po.f();
}
}
class Derived extends PrivateOverride{
public void f(){print("public f()");}
}
/* Output:
private f()
*/
我们所期望的输出是public f (),但是由于private方法被自动认为是final方法,而且对导出类是屏蔽的。因此,在这种情况下,Derived类中的f()方法就是一个全新的方法;既然基类中的f方法在子类中不可见,因此也不能被重载。
相关文章推荐
- 多态的缺陷:“覆盖私有方法”
- 多态的缺陷 “覆盖”私有方法
- 缺陷:“覆盖”私有方法
- think in java 第8章 多态 ------ 复盖私有方法的缺陷
- 缺陷:“覆盖”私有方法
- 多态的缺点(“覆盖”私有方法、域与静态方法)
- Java 覆盖私有方法
- PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
- OC基础day4-继承,self,super,多态,类对象,SEL类型,description,私有方法与私有变量,三种访问限制
- 某朋友的blogJava多态中的方法覆盖
- java中方法的覆盖(多态实现的机制之一)
- PHP面向对象编程——深入理解方法重载与方法覆盖(多态)
- 封装 继承 多态 方法重载,方法覆盖
- 包内私有方法无法覆盖,覆盖需宽化权限
- java 多态,和方法覆盖分析
- 关于继承中(静态方法+私有方法)的覆盖与重写问题
- java方法的重载、覆盖和隐藏,以及多态的区别
- Java关于子类对父类私有方法覆盖的问题
- "覆盖"私有方法
- java 多态,和方法覆盖分析(转)