抽象类:
1:abstract 修饰 的
抽象方法:public abstract void 方法名();
没有方法体
抽象类不能实例化
2:在使用过程中,父类做类型,子类实例化
3: 抽象类中可以有非抽象方法,但子类必须实现父类的抽象方法,除非子类也是抽象的
4:子类要实现父类的所有方法(如果有爷类也要实现)
抽象方法的作用:
1:优化方法
2:约束子类的行为
类和类之间的继承关系是 is-a的关系
例如:dog 继承 pets
狗 是一个 宠物
接口:是一种能力,通过行为来实现
has - a
类去实现接口
特点:接口中多有方法都是公共的抽象的方法
接口中的变量必须是公共的 静态的 final的
接口不能实例化
类在继承的同时可以实现接口
类 extends 父类 implement 接口1,接口2,....接口n
父类单继承接口多实现
何时使用抽象类,何时使用接口:
1:所有子类都具备的行为用放在父类中用抽象类
部分子类具有的行为用接口
2:抽象类单继承,接口与接口之间可以多继承多实现