1. 程式人生 > 其它 >面向物件--繼承--方法的重寫

面向物件--繼承--方法的重寫

/*
    繼承與成員方法的關係:
      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();
    }
}