# 抽象類:
父類中至少有一個抽象的方法
1.抽象方法需要有abstract關鍵字修飾柔滔,關鍵字可以再public關鍵字的后面棚蓄,也可以再public的前面秋麸。
2. 抽象類需要有abstract關鍵字修飾,關鍵字可以再public關鍵字的后面奏甫,也可以再public的前面建峭。
3. 一個抽象類中至少要有一個抽象方法
4.抽象方法 只需要聲明方法, 不能有方法體
###### **父類抽象類**
```java
public abstract class Door {
/*public void open(){
System.out.println("門的作用之一是開門");
}
public void close(){
System.out.println(" 門的作用之二是關門")};*/
public abstract void open();
public abstract void close();
}
子類一 :鍵盤鎖門
public class KeypadDoor extends Door {
public void open(){
System.out.println("按鍵盤輸入密碼開門");
}
public void close(){
System.out.println("拉上即可自動關門");
}
}
子類二:電動門
ublic class PowerDoor extends Door{
public void open(){
System.out.println("按遙控開門");
}
public void close(){
System.out.println("按遙控關門");
}
}
測試
public class Demo01 {
public static void main(String[] args) {
KeypadDoor keypadDoor=new KeypadDoor();
keypadDoor.open();
keypadDoor.close();
PowerDoor powerDoor=new PowerDoor();
powerDoor.close();
powerDoor.open();
}
}
匿名類
Door door=new Door() {
@Override
public void open(){
System.out.println("臨時實現(xiàn)的開門方法");
}
@Override
public void close() {
System.out.println("臨時實現(xiàn)的關門方法");
}
};
door.close();
door.open();
接口
1.關鍵字interface,實現(xiàn)類的關鍵字 implements 接口的名字
2.接口中寫方法的聲明 六孵, 沒有方法體
- 接口方法默認權限全部是public 贞铣,因此,可省略
- 實現(xiàn)類中需要全部實現(xiàn)接口中出現(xiàn)的未實現(xiàn)的方法
案例
public interface Door {
//方法的聲明 (簽名)
public void open();
public void close();
}
實現(xiàn)類
public class KeypadDoor implements Door {
@Override
public void open(){
System.out.println("按鍵盤輸入密碼開門");
}
@Override
public void close(){
System.out.println("拉上即可自動關門");
}
}
public class PowerDoor implements Door{
@Override
public void open() {
System.out.println("按遙控開門");
}
@Override
public void close() {
System.out.println("按遙控關門");
}
}
接口沒有直接new 遣蚀,創(chuàng)建對象,但是可以臨時創(chuàng)建一個匿名的實現(xiàn)類
Door door=new Door() {
@Override
public void open(){
System.out.println("臨時實現(xiàn)的開門方法");
}
@Override
public void close() {
System.out.println("臨時實現(xiàn)的關門方法");
}
};
door.close();
door.open();
接口中的靜態(tài)常量
public interface Door {
//靜態(tài)常量
String des="是個門纱耻,注意安全";
}
接口中默認方法和靜態(tài)方法
public interface Door {
//靜態(tài)常量
String des="是個門芭梯,注意安全";
//方法的聲明 (簽名)
public void open();
public void close();
public default void test01(){
System.out.println("接口默認測試方法");
}
public static void test02(){
System.out.println("接口中靜態(tài)方法");
}
}
public class Demo02 {
public static void main(String[] args) {
KeypadDoor keypadDoor = new KeypadDoor();
keypadDoor.open();
keypadDoor.close();
keypadDoor.test01();
// keypadDoor.teat02();
com.company.Demo02.Door.test02();
// com.company.Demo02.Door.test01();
}}
接口中默認方法只能通過實現(xiàn)類的對象 keypadDoor.test01();調(diào)用
接口中靜態(tài)方法只能通過接口名。方法Door.test02();調(diào)用
接口的多繼承
演示:
public interface GrandFather {
public void dioayu();
}
public interface Father {
public void chouyan();
}
public interface Son {
public void play();
}
多繼承:一個接口可以同時繼承很多個接口
//接口的多繼承
public interface Temp extends GrandFather ,Father,Son {
}
子類必須實現(xiàn)抽象的父類中或抽象的祖先類中累計的未實現(xiàn)的抽象方法
祖先類中的抽象的方法弄喘,如果在抽象的父類中實現(xiàn)過玖喘,子類可以選擇實現(xiàn),也可以選擇不實現(xiàn)