定义一个父类 再定义一个子类继承父类 再使用父类名和子类名分别实例化子类 输出成员方法、成员属性、静态方法的结果
public class Fu {
int a = 1;
public void fun() {
System.out.println("Fu");
}
public static void staticfun() {
System.out.println("staticFu");
}
}
public class Zi extends Fu{
int a = 2;
public void fun() {
System.out.println("Zi");
}
public static void staticfun() {
System.out.println("staticZi");
}
}
public class Test {
public static void main(String[] args) {
Fu obj1 = new Zi();
System.out.println(obj1.a); // 1
obj1.fun(); // Zi
obj1.staticfun(); // staticFu
Zi obj2 = new Zi();
System.out.println(obj2.a); // 2
obj2.fun(); // Zi
obj2.staticfun(); // staticZi
}
}
成员属性
编译时 参考的是引用型变量所属的类中是否有被调用的成员变量,类中不存在该属性就会编译失败。
运行时 调用引用型变量所属的类中的成员属性。
编译看左边,运行看左边。
成员方法
编译时 参考的是引用型变量所属的类中是否有被调用的成员方法,类中不存在该方法就会编译失败。
运行时 参考右边的对象所属的类。
编译看左边,运行看右边。
静态方法
编译时 参考的是引用型变量所属的类中是否有被调用的静态方法,类中不存在该方法就会编译失败。
运行时 调用引用型变量所属的类中的静态方法。
编译看左边,运行看左边。
最后一次更新于2019-05-27 16:13
0 条评论