標籤:person 參數 java bre ret anim 繼承 animal 功能
轉載:
Java不支援多重繼承,即一個類只能有一個父類
為了克服單繼承的缺點,Java使用了介面,一個類可以實現多個介面
介面是抽象方法和常量值定義的集合,是一種特殊的抽象類別
介面中只包含常量和方法的定義,沒有變數和方法的實現
介面中的所有方法都是抽象的
介面中成員的訪問類型都是public
介面中的變數預設使用public static final標識(可以在定義的時候不加此修飾,系統預設)
介面通過使用關鍵字interface來聲明
格式:interface 介面的名字
介面體:
介面體中包含常量定義和方法定義兩部分
介面體中只進行方法的聲明,不允許提供方法的實現
方法的定義沒有方法體,且用分號結尾
public interface Runner
{
int ID=1;
void run();
}
介面允許被繼承,可以用extends繼承一個已有的介面
public interface Runner
{
int ID=1;
void run();
}
interface Animal extends Runner
{
void breathe();
}
通過使用implements實現介面中的所有方法
class Fish implements Animal
{
public void run()
{
System.out.println("Fish is swiming");
}
public void breathe()
{
System.out.println("Fish is bubbling");
}
}
如果只需要實現某介面中定義的部分方法,可以通過定義一個抽象類別來實現
abstract class LandAnimal implements Animal
{
public void breathe()
{
System.out.println("LandAnimal is breathing");
}
一個類可以繼承一個父類的同時,實現一個或多個介面,extends關鍵字必須位於implements關鍵字之前
class Student extends Person implements Runner
{
……
public void run()
{
System.out.println("The student is Running");
}
……
}
在類中實現介面的方法時,方法的名字、傳回型別、參數個數及類型必須與介面中的完全一致
介面中的方法預設是public 的,所有類在實現介面方法時,一定要用public來修飾
如果介面的方法的傳回型別不是void,則在類中實現該介面方法時,方法體至少要有一個return語句
如果是void類型,類體除了兩個大括弧以外,可以沒有任何語句
Java中提供的介面都在相應的包中,通過引入包可以使用Java提供的介面,也可以自己定義介面
一個Java源檔案就是由類和介面組成的
介面可以增加很多類都需要實現的功能,不同的類可使用相同的介面,同一個類也可實現多個介面
介面只關心功能,並不關心功能的具體實現,使用相同介面的類不一定有繼承關係
public介面:介面聲明時,關鍵字interface前面加上public關鍵字,可以被任何一個類使用
友好介面類:一個介面不加修飾,友好介面可以被同同一包中的類使用。
java中的interface