class Super {
private void print(){
System.out.println("HELLO") ;
}
public void fun(){
this.print() ;
}
}
class Sub extends Super{
void print(){
System.out.println("WWW") ;
}
}
public class TestExtends {
public static void main(String arg[]){
new Sub().fun() ;
}
}
答案为:HELLOthis.print()方法不是先在本来寻找print()方法,即:
void print(){
System.out.println("WWW") ;
}方法吗?
为什么还要去父类寻找呢?
private void print(){
System.out.println("HELLO") ;
}
public void fun(){
this.print() ;
}
}
class Sub extends Super{
void print(){
System.out.println("WWW") ;
}
}
public class TestExtends {
public static void main(String arg[]){
new Sub().fun() ;
}
}
答案为:HELLOthis.print()方法不是先在本来寻找print()方法,即:
void print(){
System.out.println("WWW") ;
}方法吗?
为什么还要去父类寻找呢?
解决方案 »
- mysql 数据库乱码情况
- 我是什么水平呢
- 关于jar文件的问题
- 一个关于字符空和null值的问题!先谢谢各位高手
- Swing,使用togglebutton来开启和关闭多个窗口,如何实现,代码有问题.比较急,谢谢.
- java中换行符号的使用
- 什么是事件指派线程???SwingUtilities.invokeLater()和SwingUtilities.invokeAndWait()有什么区别??
- 请教Java连接mysql数据库的问题,谢谢!
- TCP通讯,这种情况怎么使用线程池?
- java中equals与==
- 关于FlowLayout的问题,帮忙进来看一下吧
- 有意思的继承关系的面试陷阱题,进来学习一下吧~~
1、Super中的fun 能够寻找到Sub中的print吗?不能!
2、你说的 在本类寻找,这个本类 该做和解???
父类中的print()方法是私有的,你父亲私有的东西你能拿去修改了吗,两者没有重写关系
所以在你调用父类的fun()方法的时候,方法内部默认调用的是父类的 private void print()
他只会认识父类的print()
如果想要调用子类的print(),请修改父类的访问权限
子类的访问权限低于父类