為什麼要用抽象類: 子類萬一沒有重寫正確,也沒有提示。 假設父類的代碼如下 子類中的代碼如下:對父類中的方法的重寫 這樣的代碼,在Eclipse中是不會報錯的; 抽象類:不知道是具體什麼東西的類。 寫法:abstract class 類名 抽象方法:不知道是具體是做什麼的方法; 寫法:abstrac ...
為什麼要用抽象類:
子類萬一沒有重寫正確,也沒有提示。
假設父類的代碼如下
public class USB { public void QiDong(){ } public void TingZhi(){ } }
子類中的代碼如下:對父類中的方法的重寫
public class UPan extends USB { public void Qidong(){ //這裡的Qidong 並不是對父類函數的重寫 System.out.println("u盤啟動了"); } public void TingZhi(){ System.out.println("u盤停止運行了"); } }
這樣的代碼,在Eclipse中是不會報錯的;
抽象類:不知道是具體什麼東西的類。
寫法:abstract class 類名
public abstract class USB { }
抽象方法:不知道是具體是做什麼的方法;
寫法:abstract 返回類型 函數名(形參); 抽象方法不需要寫函數體
派生類中,可以不實現某些抽象方法,但派生類必須要聲明為抽象類。
抽象類中,可以有抽象方法,也可以有非抽象方法。抽象類中還可以有成員變數。
public abstract class USB { public String JiaGe; public abstract void QiDong();
public abstract void TingZhi(); }
介面:
介面的作用:主要是起一個約束的作用 可以理解成為構架一個大框 代碼格式只能按照規定的格式寫
定義: 文件—新建—介面 // 介面名首字母加一個大寫的I
介面定義時,介面名字儘量是形容詞,或者描述性的詞
介面的內容儘量的少,方便靈活使用 —介面分離原則
interface 介面名 extends 父介面列表{ final 類型 常量名=值; //規定了需要按照什麼格式去寫,如果和這個格式不統一,就會報錯 public void 方法名(形參); }
介面的實現:
abstract class 類名 extends 父類 implements 介面列表{
}
前面說道介面的作用就是約束,那麼具體來看一下是怎麼約束的
創建一個介面 新建—介面 在介面中錄入以下代碼
public interface IJiSuan { public int a=0; public void Suan(int a, int b); }
然後我們新建一個類 新建-類 添加介面,點擊確定,就會自動生成以下代碼;
public abstract class YunSuan implements IJiSuan { @Override public void Suan(int a, int b) { // TODO 自動生成的方法存根 } }
假設我們將方法名改成 suan 系統就會自動報錯
final 可以修飾成員變數(常量)、成員方法(不允許重寫)、類(不允許被繼承)