java複習第1天---1.2---繼承

java複習第1天---1.2---繼承


目錄




內容

1、繼承格式

修飾符 子類名 extends 父類名{}
例如:
class A{}
class B extends A{}

extends爲繼承關鍵字

2、成員變量的訪問特點

  在繼承關係中,成員變量訪問規則如下:

  • 父類方法只能訪問父類成員變量

  • 子類方法優先訪問子類的成員變量,如果沒有在訪問父類成員變量

  • 本地變量優先級最高

  • 示例代碼2-1:

      package inherited.var;
    
      public class Father {
      	int num = 20;
    
      	public void show() {
      		System.out.println(num);
      	}
      }
      
      package inherited.var;
    
      public class Son extends Father{
      	int num = 10;
    
      	public void show() {
      		int num = 30;
      		System.out.println(num);
      		System.out.println(this.num);
      		System.out.println(super.num);
      	}
      }
      
      package inherited.var;
    
      public class TestVar1 {
    
      	public static void main(String[] args) {
      		Son s1 = new Son();
    
      		s1.show();
      	}
      }
      結果:
      30
      10
      20
    

3、成員方法訪問特點

訪問規則同成員變量。

4、方法重寫

4.1、方法重寫與方法重載區別

  • 方法重寫:override

    1. 方法名和參數列表一致
    2. 返回值範圍小於等於父類方法返回值範圍
    3. 子類方法訪問權限要大於等於父類方法的訪問權限
      • 權限範圍:public > protected(default) > private
  • 方法重載:overload

    1. 方法名相同
    2. 參數不同
      • 參數數量不同
      • 參數類型不同

4.2、方法重寫作用

  軟件開發思想之一:開閉原則-對修改關閉,對擴展開放。即已經封裝好的功能,儘量不在修改。如果想要對原有功能擴展,可以使用方法重寫擴展原有功能。

  • 示例4.2-1:10年前手機功能:打電話、發短信、顯示號碼,現在手機不僅能顯示號碼,還可以顯示姓名,顯示頭像。

  • 代碼4.2-1:

      package inherited.override;
    
      public class Phone {
      	public void call() {
      		System.out.println("打電話");
      	}
    
      	public void info() {
      		System.out.println("發短信");
      	}
    
      	public void show() {
      		System.out.println("顯示號碼");
      	}
      }
      
      package inherited.override;
    
      public class NewPhone extends Phone{
      	public void show() {
      		super.show();
      		System.out.println("顯示姓名");
      		System.out.println("顯示頭像");
      	}
      }
      
      package inherited.override;
    
      public class OverrideTest1 {
    
      	public static void main(String[] args) {
      		NewPhone np = new NewPhone();
      		np.call();
      		np.info();
      		np.show();
      	}
    
      }
    

5、構造方法

  • 規則:

    1. 調用子類構造方法,會默認調用父類無參構造方法
    2. 如果要顯示調用,則用super(),且必須寫在子類構造方法第一行。
    3. 顯示調用父類構造方法,不能多次調用,最多一次
  • 示例代碼5-1:

      package inherited.constructor;
    
      public class Father {
    
      	public Father() {
      		System.out.println("父類無參構造方法");
      	}
    
      	public Father(int a) {
      		System.out.println("父類帶參構造方法");
      	}
      }
      
      package inherited.constructor;
    
      public class Son extends Father{
      	public Son() {
      		System.out.println("子類無參構造方法");
      	}
    
      	public Son(int a) {
      		System.out.println("子類帶參構造方法");
      	}
    
      	public Son(double a) {
      		super(2);
      		System.out.println("子類帶參構造方法");
      	}
      }
      
      package inherited.constructor;
    
      public class TestConstructor1 {
    
      	public static void main(String[] args) {
      		//Son s1 = new Son();
    
      		//Son s2 = new Son(2);
    
      		Son s3 = new Son(2.0);
      	}
    
      }
      
      結果:
      	s1
      	父類無參構造方法
      	子類無參構造方法
      	s2
      	父類無參構造方法
      	子類帶參構造方法
      	s3
      	父類帶參構造方法
      	子類帶參構造方法
    

6、this與super

  • this:指向調用對象
    • this.成員變量
    • this.成員方法
  • super:指向父類
    • super.成員變量
    • super.成員方法
    • super() 父類構造方法

後記

本項目爲參考某馬視頻開發,相關視頻及配套資料可自行度娘或者聯繫本人。上面爲自己編寫的開發文檔,持續更新。歡迎交流,本人QQ:806797785

前端項目源代碼地址:https://gitee.com/gaogzhen/vue-leyou
    後端JAVA源代碼地址:https://gitee.com/gaogzhen/JAVA

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章