抽象类:
声明方法的存在而不去实现它的类叫做抽象类。
抽象方法只有方法的声明没有方法的实现。
方法只要写了{}就认为完成了方法的实现。
抽象类中有一个或者多个抽象方法,用abstract修饰,抽象类可以出现非抽象属性和方法
子类extends抽象类,并且没有实现抽象父类中的方法,并用avstract修饰,子类也称为抽象类,否则子类必须实现抽象父类中所有的抽象方法。
抽象类不能new对象
接口:
接口是需要其他类实现的行为模板,接口不能有任何具体方法的实现(默认public abstract),接口也可以定义常量(public static final)
类使用implements实现接口,对接口中的所有方法进行实现。
JAVA中只能单继承但可以多实现,接口可以多继承
一个接口可以有多个父接口,子接口继承父接口所有的属性和方法
一个接口可以指向一个实现类的实例,只能调用该接口的方法(向上转型)
用接口去接一个类的实例(面向接口编程,为了完成解耦)
接口被实现的方法的访问控制符必须显示地调用public修饰
接口和抽象类的区别:
不同:接口中不能有非抽象的方法,抽象类可以有。一个类可以实现多个接口,只有一个父类。
相同:属性都是常量,都有抽象方法
想要的到接口的实例可以new它的抽象类:
接口 名 = new 实现类();