面向物件--繼承--方法的重寫
阿新 • • 發佈:2021-12-10
/* 繼承與成員方法的關係: 1、當子類中的方法與父類中的方法不同的名字的時候 根據呼叫方法的名字不同,呼叫的方法也不同 2、當子類中的方法與父類中的方法名字一樣的時候 1)先在本類中查詢,看看有沒有方法,如果有就直接呼叫 2)如果本類中沒有對應名字的方法,就去父類中找 3)如果在父類中也沒有找到對應的方法,報錯 */ //----------當子類中的方法與父類中的方法不同的名字的時候---------- class Father2{ public void fun1(){ System.out.println("這是父類的fun1方法"); } } class Son2 extends Father2{ public void fun2(){ System.out.println("這是子類中的fun2方法"); } } public class ExtendsDemo3 { public static void main(String[] args) { Son2 son2 = new Son2(); //根據呼叫方法的名字不同,呼叫的方法也不同 son2.fun2(); } } //----------當子類中的方法與父類中的方法名字相同的時候---------- //1)先在本類中查詢,看看有沒有方法,如果有就直接呼叫 class Father2{ public void fun1(){ System.out.println("這是父類的fun1方法"); } } class Son2 extends Father2{ public void fun2(){ System.out.println("這是子類中的fun2方法"); } public void fun1(){ System.out.println("這是子類中fun1方法"); } } public class ExtendsDemo3 { public static void main(String[] args) { Son2 son2 = new Son2(); son2.fun2(); //訪問的是子類中的fun1方法 son2.fun1(); } } //2)如果本類中沒有對應名字的方法,就去父類中找 class Father2{ public void fun1(){ System.out.println("這是父類的fun1方法"); } } class Son2 extends Father2{ public void fun2(){ System.out.println("這是子類中的fun2方法"); } // 把子類中的fun1方法註釋掉 // public void fun1(){ // System.out.println("這是子類中fun1方法"); // } } public class ExtendsDemo3 { public static void main(String[] args) { Son2 son2 = new Son2(); son2.fun2(); //訪問的是父類中的fun1方法 son2.fun1(); } } //3)如果在父類中也沒有找到對應的方法,報錯 class Father2{ // 把父類中的fun1方法註釋掉 // public void fun1(){ // System.out.println("這是父類的fun1方法"); // } } class Son2 extends Father2{ public void fun2(){ System.out.println("這是子類中的fun2方法"); } // 把子類中的fun1方法註釋掉 // public void fun1(){ // System.out.println("這是子類中fun1方法"); // } } public class ExtendsDemo3 { public static void main(String[] args) { Son2 son2 = new Son2(); son2.fun2(); //報錯 son2.fun1(); } }