/*** Cat class* Java 中實(shí)例方法被覆蓋,靜態(tài)方法被隱藏** @author libin* @date 2019/1/28 17:05*/
class Animal {public static void testClassMethod() {System.out.println("Class" + " method in Animal.");}public void testInstanceMethod() {System.out.println("Instance " + " method in Animal.");}
}public class Cat extends Animal {public static void testClassMethod() {System.out.println("The class method" + " in Cat.");}@Overridepublic void testInstanceMethod() {System.out.println("The instance method" + " in Cat.");}public static void main(String[] args) {Cat myCat = new Cat();Animal myAnimal = myCat;Animal.testClassMethod();myAnimal.testInstanceMethod();}
}
參考答案
Class method in Animal.
The instance method in Cat. /*** Demo class** @author libin* @date 2019/1/28 16:25*/
class A {static void fun() {System.out.println("A.fun()");}
}class B extends A {static void fun() {System.out.println("B.fun()");}
}public class Demo {public static void main(String args[]) {A a = new B();a.fun();}
}
參考答案
A.fun() /*** Son class** @author libin* @date 2019/1/29 10:25*/class Dad {protected static String me = "dad";public void printMe() {System.out.println(me);}
}public class Son extends Dad {protected static String me = "son";@Overridepublic void printMe() {System.out.println(me);}public static void main(String[] args) {Dad dad = new Son();Son son = new Son();System.out.println("son.me:" + son.me);System.out.println("dad.me:" + dad.me);System.out.println("Son.me:" + Son.me);System.out.println("Dad.me:" + Dad.me);son.printMe();dad.printMe();}
}
參考答案
son.me:son
dad.me:dad
Son.me:son
Dad.me:dad
son
son
反編譯Class代碼
class Dad
{protected static String me;public void printMe() {System.out.println(Dad.me);}static {Dad.me = "dad";}
}public class Son extends Dad
{protected static String me;@Overridepublic void printMe() {System.out.println(Son.me);}public static void main(final String[] args) {final Dad dad = new Son();final Son son = new Son();System.out.println("son.me:" + Son.me);System.out.println("dad.me:" + Dad.me);System.out.println("Son.me:" + Son.me);System.out.println("Dad.me:" + Dad.me);son.printMe();dad.printMe();}static {Son.me = "son";}
}