第二十八節:Java基礎-進階繼承,抽象類,介面

liuxuhui發表於2021-09-09

圖片描述

標題圖

前言

Java基礎-進階繼承,抽象類,介面

進階繼承

class Stu { int age = 1;
}class Stuo extends Stu { int agee = 2;
}class Demo{
 Stuo stuo = new Stuo();
}

成員變數的特殊情況

成員函式

class Stu{ void show(){
   System.out.println("Stu show");
 }
}class Stue extends Stu{ void show(){
  System.out.println("Stu show run");
 }
}class Demo{ public static void mian(String[] args){
  Stue stue = new Stue();
  stue.show();
 }
}

重寫

override重寫,覆蓋,複寫
寫法:函式的返回值型別,函式名,引數列表都要一樣

子父類中建構函式的特點

在子類和父類中都有建構函式,執行時,先執行父類中的建構函式,在執行子類的建構函式,因為子類的所有建構函式中第一行都有一句,隱式的super();,表示為呼叫父類的無參的建構函式。

在子類中為什麼有super()呢,子類會一旦繼承父類,會繼承父類中的內容,子類在初始化的時候,會先到父類進行父類的初始化操作,這沒問題吧,因為這樣才可以使用父類中的內容。

子類中所有的建構函式,都會訪問父類中預設的空參函式。

class Student extends Person{
 Student(){ // super();
 System.out.println("dashucoding");
 }
 Student(String name){   this(); // 呼叫Student()的方法
   System.out.println("dashucoding");
  }
}

this關鍵字的描述,在子類中我們會用到this關鍵字,this是寫在建構函式的第一行,用來呼叫本類的其他建構函式的,那麼還會有super()了嗎,沒有了。super()也是用來放在第一行的,用來顯示初始化的。

在建構函式中,第一行預設都是super(),所有物件的父類都是Object類,所以父類中的建構函式預設第一行,除非自己寫,否則都是隱式的super(),用來訪問父類中的建構函式。

this語句和super語句必須在第一行

子類例項化過程的應用

class Person{
 private String name; private int age; public Person(String name,int age){  this.name = name;  this.age = age;
 } public void setName(String name){  this.name = name;
 } public String getName(){   return name;
 } public void setAge(int age){   this.age = age;
  } public int getAge(){  return age;
 }
}
class Student extends Person { public Student(String name,int age){ super(name,age);
 }
}

final關鍵字

final關鍵字用來修飾變數,另外在Java中的String類表示為字串,字串是常量,它的值在建立以後不能被修改,而字串緩衝區中的字串可變。

修飾符,修飾變數,方法,類
final修飾的類為最終類,修飾方法為最終方法,不能被重寫

抽象類abstract

抽象類是一個父類,具有自己的建構函式,但是不能給自己的物件進行初始化,卻可以給自己的子類物件進行初始化。

包含抽象方法的類叫做抽象類,抽象類中抽象方法是不完整的,僅有宣告而沒有方法體。一個類中包含一個或者多個抽象方法,則這個類被叫做為抽象類。

介面

介面解決了多繼承的問題,將多繼承的這種機制在java中透過介面實現了,介面與介面之間是繼承的關係。

interface A{ void showa();
}interface B{ void showb();
}class C implements A,B{ public void showa(){}; public void showb(){};
}

抽象類是用來描述事物的基本功能,抽象類中可以沒有抽象方法,但是具有抽象方法的類定為抽象類,介面中定義只能是抽象方法。



作者:達叔小生
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756/viewspace-2818764/,如需轉載,請註明出處,否則將追究法律責任。

相關文章