/*
* 接口
* 语法1:接口使用interface关键字定义
* 语法2:接口中允许定义抽象方法,定义时允许忽略abstract
* 语法3:接口中不允许定义构造方法
* 语法4:接口中不允许定义带有方法体的普通方法,但可以通过default关键字定义默认方法
* 语法5:实现类通过implements关键字实现接口,必须重写接口中定义的抽象方法
* 语法6:实现类可以同时实现多个接口
* 语法7:接口之间允许多重继承
*
*
* 抽象类
* 语法1:抽象类使用abstract关键字定义
* 语法2:抽象类中允许定义抽象方法
* 语法3:抽象类中允许定义构造方法
* 语法4:抽象类中允许定义带有方法体的普通方法
* 语法5:子类通过extends关键字继承抽象类,必须重写抽象类中定义的抽象方法
* 语法6:子类同时只能继承一个父类
*/
//举例
interface Product{
void Phone();//抽象方法√
public default void Book() {}//默认方法√
//public void Product() {}//构造方法×
//public void Food() {} 普通方法×
}
interface Fruit{
}
//接口可以多重继承
class Lemon implements Product,Fruit{
public void Phone() {}//必须实现接口中定义的抽象方法
}
abstract class Book{
void Book() {}//构造方法√
abstract void bookPrice();//抽象方法√
public void bookName() {}//普通方法√
}
abstract class BookType{
//抽象类不能多继承
}
class bookAuthor extends Book{
void bookPrice() {}//实现抽象类的抽象方法
}