⒈Eigenschaften nichtstatischer Elementfunktionen im Polymorphismus:
①Zur Kompilierungszeit: Überprüfen Sie, ob in der Klasse, zu der die Referenzvariable gehört, eine aufrufende Methode vorhanden ist. Wenn dies der Fall ist, wird die Kompilierung erfolgreich durchgeführt, andernfalls schlägt die Kompilierung fehl.
② Während der Laufzeit: Überprüfen Sie, ob in der Klasse, zu der das Objekt gehört, eine aufrufende Methode vorhanden ist.
--------------------------------- --- ---
//Kurz gesagt: Wenn eine Mitgliedsfunktion aufgerufen wird, achten Sie beim Kompilieren auf die linke Seite und beim Ausführen auf die rechte Seite. //
------------------------------ --- -----
2. Eigenschaften von Variablen mit demselben Namen im Polymorphismus: (ps: unterschiedliche Namen wurden nicht überprüft)
Unabhängig von der Kompilierung oder Ausführung beziehen Sie sich auf die linke Seite (die Klasse). zu der die Referenzvariable gehört)
3. Eigenschaften statischer Elementfunktionen im Polymorphismus:
Unabhängig von der Kompilierung oder Ausführung beziehen Sie sich auf die linke Seite (die Klasse, zu der die Referenzvariable gehört)
Beispiel:
Class Fu { int num=1; public void method1() { System.out.println("fu_1"); } public void method3() { System.out.println("fu_3"); } //静态方法(包括变量)不所属于对象,它绑定于所属的类,会在内存中提前加载出来 public static void method4() { System.out.println("fu_4"); } } Class Zi extends Fu { int num=2; public void method1() { System.out.println("zi_1"); } public void method2() { System.out.println("zi_2"); } public static void method4() { System.out.println("zi_4"); } } Class Duotaitest { public static void main (String [] args) { Fu f=new Zi (); f.method1(); //f.method2(); 此行代码若存在,则编译失败,Fu类中没此方法 f.method3(); f.method4(); System.out.println(f.num); Zi z= new Zi(); System.out.println(z.num); } /* 运行结果: zi_1 fu_3 fu_4 //静态方法不能被子类重写覆盖,若想调用子类中的静态方法(一般没这么用的,只是面试会用到)Zi.method4(类名.方法名) 1 2 */ }