1. 程式人生 > >類,接口,抽象類總結

類,接口,抽象類總結

特殊 必須 優先執行 特性 xtend 關鍵字 數據類型 抽象 定義類

類,接口,抽象類總結
類的繼承

類繼承的格式:
Public class 類名 extends 父類名{

}
註意:java中類的繼承是單繼承,即extends後只有一個父類。
例:public class UNSstudent extends Student{}

子類繼承父類中的方法時有兩種情況:
如果子類和父類在同一個包下,那麽父類中的公有屬性,受保護屬性以及普通方法可以被子類繼承,而私有屬性、方法及構造方法不能子類繼承。
如果子類和父類不在同一個包下,那麽父類中的公有屬性及普通方法可以被子類繼承到,而私有屬性及方法和受保護的屬性及方法、構造方法不能被子類繼承到。
方法的重寫
如要實現方法的重寫必須滿足的條件:
1) 兩個類必須存在繼承關系;
2) 子類重寫方法的訪問修飾符必須大於或等於父類方法的訪問修飾符private<protected<public。
3) 方法的返回值數據類型,方法名,參數類型、個數及順序都必須形同。
註意:如果子類中沒有重寫方法,那麽調用時會優先執行父類中的方法,如子類中重寫了方法,那麽調用時就會先執行子類中的方法。
自動轉型
條件:必須存在繼承關系。
格式
1父類名 對象名=new 子類構造方法();
Student un = new UNSstudent();
2 定義方法
Public 返回值數據類型 方法名(父類名 對象名){
代碼
}
實例化對象
父類名

對象名=new 子類構造方法();
子類名 對象名=new 子類構造方法();
調用:方法名(對象名)

多態:多態是由java的方法重載,繼承,方法重寫,自動轉型等技術的表現形式。
多態是對象之間的不同表現形態。
面向對象的三大特征:
1. 繼承
2. 多態
3. 封裝

接口
定義接口:
public interface 接口名 extends 接口名,…{}
接口中可以定義常量:
public static final 數據類型 常量名= 值;
例如 public static final String NAME=”li”;(常量名必大寫)

定義抽象方法:
public 返回值數據類型 方法名(數據類型 參數名,…);
註意:這裏沒有大括號,而是用分號。

註意:
1接口中默認的訪問修飾符是public,
2 接口中可以定義抽象方法
3接口可以繼承多個接口,用逗號分隔開即可,
4接口不能實例化對象。
實現接口的格式:
Public class 類名 implements 接口名,…{
//要實現接口中可全部抽象方法
}
接口可以實現類或抽象類然後在實現多個接口
格式:
public class 類名 extends 類名或抽象類 implements 接口名,…{
//實現抽象類中和接口中的所有抽象方法
}
接口和類的區別:
1. 定義的關鍵字不同,前者為implements,後者為class;
2. 接口中默認的訪問修飾符是public,類中默認的是protected;
3. 接口中只能定義常量和抽象方法,而類中可以定義常量,屬性,方法;
4. 接口可以多繼承,而類是單繼承;
5. 接口中不可以實例化對象,類中可以實例化對象。
public interface Drawing{
//定義常量
public static final String NAME=”圓”;
//定義抽象方法
public void draw();
}


抽象類
定義抽象類
public abstract class抽象類名{
}
抽象類中可以定義類中有的任何屬性方法,但不能實例化對象。
可以定義常量(常量名的各個字母都要大寫),
還可以定義抽象方法,格式:
public abstract 返回值數據類型 方法名(數據類型 參數名,……);
抽象類也可以繼承,其格式為:
public abstract class抽象類 extends 抽象類或類{
//抽象類中的抽象方法可以實現也可以不用實現
}
1.抽象類是繼承類和接口所有特性的類。
2.抽象類和接口都是比較特殊的類。
3.抽象類和接口都不能實例化對象。
public abstract class Absdraw{
//定義常量
public static final String NAME=”圓”;
//屬性
private String type;
//構造方法
public Absdraw (String type){
this.type = type;
}
//普通方法
public void setType(String type){
this.type = type;
}
public String getType(){
return type;
}

//定義抽象方法
public abstract void draw();

}

類,接口,抽象類總結