private 方法不能重写
public class Test {
public static void main(String[] args) {
A a = new B();
a.fun();//调用不了
}
}
class A {
private void fun() {
System.out.println("A...");
}
}
class B extends A {
public void fun() {
System.out.println("A...");
}
}
静态方法不能重写
public class Test {
public static void main(String[] args) {
// 这里只有一个实体,而调用结果是两个。
// 这里没有后期绑定,而是编译器在编译时已经确定下来要调用的方法了。
// 编译器是通过引用的类型来确定的!
B b = new B();
A a = b;
a.fun();
b.fun();
}
}
class A {
public static void fun() {
System.out.println("A...");
}
}
class B extends A {
public static void fun() {
System.out.println("B...");
}
}
属性不能重写
public class Test {
public static void main(String[] args) {
// 子类对象的实体中包含了父类对象的实体空间(父类子对象)
// 在父类对象中有一个属性a
// 在子类自己空间也有一个属性a
// 但这里没有多态!
// 都是编译器通过引用类型来确定的
B b = new B();
A a = b;
System.out.println(a.a);
System.out.println(b.a);
}
}
class A {
int a = 1;
}
class B extends A {
int a = 2;
}
|
|