package day1401;
public class Test1 {
public static void main(String[] args) {
B b = new B();
A a = new B();
// 运行期, 并绑定到子类方法
b.p();
a.p();
// 编译期查找
// 编译期根据变量 a 的类型定义,
// 在这个类中查找 f()方法并绑定
B.f();
A.f();
/*
* 编译期绑定
*
*/
System.out.println(b.v1);
System.out.println(a.v1);
}
}
class A{
int v1 = 2;
static void f() {
System.out.println("A.f()");
}
void p() {
System.out.println("A.p()");
}
}
class B extends A {
int v1 = 1;
static void f() {
System.out.println("B.f()");
}
void p() {
System.out.println("B.p()");
}
}