錯誤: Bus中的charge()無法實現MoneyFare中的charge() , 正在嘗試分配更低的訪問許可權; 以前為public
【原始碼】
abstract class MotorVehicles{
abstract void brake();
}
interface MoneyFare{
void charge();
}
class Bus extends MotorVehicles implements MoneyFare{
void brake(){
System.out.println("公交車使用鼓式剎車技術");
}
void charge(){
System.out.println("公交車:");
}
}
class Cinema implements MoneyFare{
public void charge(){
System.out.println("電影院:");
}
}
public class Application{
public static void main(String args[]){
Bus bus1=new Bus();
Cinema redStarCinema=new Cinema();
bus1.brake();
bus1.charge();
redStarCinema.charge();
}
}
【錯誤原因】
所有的抽象方法的訪問許可權一定都是public(允許省略public、abstract修飾符),所以此處Bus裡面的void charge()應該加上public。
【介面實現】
介面由類來實現,即由類來重寫介面中的方法,一個類可以在類宣告中使用關鍵字implements宣告實現一個或多個介面。如果類實現多個介面,用逗號隔開介面名,如A類實現Printable和Addable介面:
class A implements Printable,Addable
如果一個非抽象類實現了某個介面,那麼這個類必須重寫這個介面中的所有方法。需要注意的是,由於介面中的方法一定是public abstract方法,所以