Java學習 (25) 對象篇(05)抽象類&接口
抽象類
- abstract修飾符可以用來修飾方法也可以修飾類,如果修飾方法,那么該方法就是抽象方法;如果修飾類,那么該類就是抽象類。
- 抽象類中可以沒有抽象方法,但是有抽象方法的類一定要聲明為抽象類。
語法實例
// abstract 抽象類 單繼承
public abstract class Action {
//約束,可以多人實現(xiàn)
//abstract 抽象方法,只有方法名字,沒有方法的實現(xiàn)
public abstract void doSomething();
}
//抽象類的所有方法繼承了他的子類都必須要實現(xiàn)他的方法,除非子類也是抽象的
// public abstract class A extends Action{}
public class A extends Action{
@Override
public void doSomething() {
}
}
注意點
-
不能new這個抽象類,只能靠子類去實現(xiàn)它
-
抽象類中可以寫普通方法,但抽象方法一定在抽象類中
-
抽象類可以作為一個模板來使用,從而減少開發(fā)效率
具體講解視頻(狂神說Java)
接口
-
接口就是規(guī)范,定義的是一組規(guī)則,體現(xiàn)了現(xiàn)實世界中“如果你是...則必須能.….”的思想
-
接口的本質(zhì)是模型
-
編程的精髓,是對對象的抽象,最能體現(xiàn)這一點的就是接口
-
接口的實現(xiàn)
- 類可以通過 implements 來實現(xiàn)接口中的定義類
- 要實現(xiàn)接口中的類,必須要實現(xiàn)(重寫)接口中的方法
- 可以利用接口來實現(xiàn)多繼承
語法實例
public interface User {
//接口中的所有定義的屬性都是抽象的 public static final
int age = 10;
//接口中的所有定義的方法都是抽象的 public abstract
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}
package com.luo.oop.demo11;
public interface Timer {
void timer();
}
package com.luo.oop.demo11;
public class UserImpl implements User, Timer {
public void add(String name){}
public void delete(String name){}
public void update(String name){}
public void query(String name){}
public void timer() {}
}
浙公網(wǎng)安備 33010602011771號