兩個源文件
// 接口默認就是抽象的。當需要聲明一個接口的時候不需要使用 abstract 關鍵字。
// interface 關鍵字用來聲明一個接口
/*
1.一個接口可以繼承另一個接口,和一個類繼承自另一個類的方法相同。
extends 關鍵字用來繼承一個接口,并且子接口要繼承父接口的所有方法。
2.一個接口可以繼承多個接口,以逗號隔開
*/
interface Animal extends LivingThing{
// 接口不能包含實例變量。接口中唯一能出現的變量必須被同時聲明為 static 和 final 。
//int legs 常量必須賦值,沒有默認值;
public static final int legs = 4;
/*
接口中的每個方法默認也是抽象的,所以 abstract 關鍵字也不需要。
接口中的方法默認是 public 的。
*/
public void eat();
void travel();
// 接口不能包含構造方法。 接口中的所有方法都是抽象的。
// Animal();
}
interface LivingThing {
void live();
// 接口不能包含構造方法。 接口中的所有方法都是抽象的。
// void Animal();
}
interface Bird {
void fly();
// 接口不能包含構造方法。 接口中的所有方法都是抽象的。
// void Animal();
}
// 接口不能被類繼承;它應該被類實現。
public class MammalInt implements Animal,Bird{
public void eat(){
System.out.println("Mammal eats");
}
public void travel(){
System.out.println("Mammal travels");
}
public int noOfLegs(){
return 0;
}
public void fly(){
System.out.println("Mammal can't fly");
}
public void live(){
System.out.println("Mammal is alive");
}
public static void main(String args[]){
MammalInt m = new MammalInt();
m.eat();
// m.travel();
m.fly();
// 接口方法必須實例化 但是不是必須調用
m.live();
// 不能實例化一個接口。
// Animal a = new Animal();
}
/*1.當一個類實現一個接口的時候,你可以認為類就是簽訂一個條約,
同意去執行接口中的各種行為。
2.如果一個類沒有實現接口中的所有行為,
這個類就必須聲明為 abstract */
abstract class dog implements Animal{
/*
1.類可以一次性實現多個接口。
2.類只可以繼承一個父類,但是可以實現多個接口。
3.一個接口可以繼承自另一個接口,和一個類繼承自另一個類的方法相同。
4.實現接口中的方法 注意類的權限
*/
public void travel(){
System.out.println("i like travel");
}
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。