抽象类与接口

205 阅读1分钟

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("跳起来飞");
	
}

}

抽象类和接口的区别

*接口是比抽象类还抽象的抽象类,更加规范了对子类的约束。全面的实现了规范与是实现分离

*接口就是规范,定义的是一组规则

*接口的本质是契约