抽象类
抽象类是一种特殊的类,使用abstract修饰
抽象类不能被实例化,只能被继承
抽象方法不能设置使用private 修饰,因为抽象类不能被实例化,私有成员没有意义。
abstract 还可以修饰方法,称之为抽象方法:抽象方法所在的类必须是抽象类,抽象方法不能有方法体
如果子类继承了抽象类,要么子类自身是抽象类,要么实现所有抽象方法
抽象类的目的是规范子类,通常会在比较大型或者规范的项目中才会使用
抽象类中不允许有成员属性
抽象类就是一个类的服务提供商,拥有众多服务,你不用必须用,当需要的时候你来用就可以,如果你觉得不提供服务不满意,你还可以自己来做。
接口
接口不是类,但与类有类似的结构,目的是为了约束类。
接口不能实例化,但类可以实现接口(注意是实现不是继承)
接口是用来规范项目体系,提供一些必须的行为规范
接口成员只允许有两类
接口常量:const
public的接口方法(普通方法和静态方法)
接口的方法为抽象方法,没有方法体(不需要abstract 关键字,因为接口方法都是抽象方法)
实现接口的类:
可以访问接口的常量:接口常量不能被重写
需要实现所有的接口方法(除非本身是抽象类)
接口方法实现不允许增加控制权限(必须为 public)
接口类就是一个类的领导者,指明方向,子类必须完成它指定方法。