关于this,继承,修饰的问题
来源:互联网 发布:淘宝几百块的电脑主机 编辑:程序博客网 时间:2024/06/06 13:56
例子:最终的输出结果是什么?
class Person{
private void print(){
System.out.println("Person");
}
public void fun(){
this.print();
}
};
class Student extends Person{
public void print(){
System.out.println("Student");
}
};
public class ExtDemo04{
public static void main(String args[]){
Student s = new Student();
s.fun();
}
};
输出结果是Person,原因是当s调用fun()方法(从父类Person中继承而来)时,这时候的this是指的当前对象Student的一个实例s,而fun()方法中却又调用的是print()方法,到底是调用的父类的print()还是子类Student中的print()方法呢?父类Person中的print()方法是private修饰的,所以子类Student是继承不到此方法,子类与父类中的print()方法是两个独立的方法,彼此之间没有关系。
那为什么调用的是父类的print()方法呢?因为Student的实例在调用父类的方法时候,父类首先要看的是子类中有没有重写了此方法,而这个例子中是没有重写的,所以调用的是父类的print()方法。若将private去掉改为default修饰print()方法,那么父类中的print()方法是可以被子类继承的,那么就应该是调用子类的方法。
父类只可以调用自己的方法,对于子类的方法,父类是不可见的。而子类可以继承父类中的方法。在上转型(将子类转换为父类)的时候,只能调用的是父类中的方法。
0 0
- 关于this,继承,修饰的问题
- 关于修饰符联想到继承问题
- 关于继承的问题
- 关于继承的问题
- 多重继承、this、dynamic_cast、static_cast的问题
- 关于const修饰指针的问题
- 关于const修饰的问题【转载】
- 关于Js的this问题
- 关于setCommandListener(this);的问题
- 【Unity&继承】关于继承的一些问题
- 一个关于继承的问题
- 关于继承的一个问题
- 关于继承的一个问题
- 关于继承的一个问题
- 关于类的继承问题
- 关于call的继承问题
- 关于static的继承问题
- 关于call ,this,继承,记录一点自己的初步理解
- [转载]不会带团队的领导,只能自己干到死
- Scala 的Hbase接口函数
- 默认实参
- 磁盘存储管理
- java中的匿名内部类总结
- 关于this,继承,修饰的问题
- List双向链表容器
- 301、404、200、304等HTTP状态
- java读取TXT文件的方法
- java读写txt文件
- 把Java程序打包成jar文件包并执行
- R 学习 运算函数篇
- IP地址与子网划分
- 文件系统的简单操作df,du