よく無視される細部の問題(一)
1982 ワード
1.java静的メソッドは上書きできますか?コードを貼って、例を見ます
非静的メソッドが上書きされ、静的メソッドが上書きされないことは容易にわかりますが、どのメソッドを呼び出すかは、現在のオブジェクトのクラス情報が親に属するか、子に属するかによって異なります.
public class Super {
static String greeting(){
return "Good night";
}
String name(){
return "Richard";
}
}
public class Sub extends Super{
static String greeting(){
return "Hello";
}
String name(){
return "Dick";
}
}
public class Test {
public static void main(String[] args){
Super s = new Sub(); //s Super
System.out.println(s.greeting()+","+s.name());
Sub s1 = new Sub(); //s1 Sub
System.out.println(s1.greeting()+","+s1.name());
}
}
:
Good night,Dick
Hello,Dick
非静的メソッドが上書きされ、静的メソッドが上書きされないことは容易にわかりますが、どのメソッドを呼び出すかは、現在のオブジェクトのクラス情報が親に属するか、子に属するかによって異なります.