java抽象类
关键字:abstrack
为什么需要抽象类
是一种模版模式,为子类提供一个通用的模板,子类可以在这个基础模版上进行扩展,使子类之间可以通用
要点
*有抽象方法的类只能定义为抽象类
*抽象类不能实例化,及不能用关键字new来实例化抽象类
*抽象类可以包含属性、方法、构造方式,但是构造方式不是用来实例化,是用来子类调用
*抽象类只能用来继承
*抽象方法必须被子类(非抽象类)实现
代码实例:
public abstract class Animal {
public abstract void run();
public void eat()
{
}
}
class Cat extends Animal{
// 子类必须实现父类抽象方法
public void run() {
}
}
接口
关键字 interface
要点
*接口通过implement关键字实现
*接口不能创建实例,但可以用于引用变量生命
*一个类实现了接口,必须实现接口所有方法并且这些方法必须是public
*接口支持多继承
代码实例:
public interface Flyable {
int MAX_SPEED = 11000;
int MIN_HEIGHT = 1;
void fly();
}
class Plane implements Flyable{
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("飞机依靠发动机飞");
}
}
class Man implements Flyable{
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("跳起来飞");
}
}
抽象类和接口的区别
*接口是比抽象类还抽象的抽象类,更加规范了对子类的约束。全面的实现了规范与是实现分离
*接口就是规范,定义的是一组规则
*接口的本质是契约