Java 抽象类和接口小记
Java 抽象类和接口实现了 java 的多态. 多态是面向对象程序语言的核心, 在项目开发过程中, 其实很少使用抽象类, 接口用得比较多, 今天小记一下抽象类和接口的区别.
抽象类
/*
* 抽象类不能被实例化
* 抽象类可以继承
* 可以定义变量
* 可以定义构造方法
* 抽象方法的 abstract 要显式的写出来
* 其子类必须实现抽象类的所有抽象方法
*/
abstract class ab extends Object{
int a = 0;
public ab() {
}
public abstract void f();
}
总结: 抽象类和普通类的差别是, 不能被实例化, 可以定义抽象方法, 但子类必须实现
接口
/**
* 可以用 extends 继承其它接口
* 只能定义常量, 不能定义变量
* 不能定义构造方法
* 方法全是抽象方法
* 实现类必须实现其所有抽象方法
*/
interface In {
public int a=0;
public void a();
public void b();
}
2.1 接口的实现
class InImpl implements In{
@Override
public void a() {
}
@Override
public void b() {
}
}
总结: 接口比抽象类更抽象, 只能定义抽象方法, 也只能定义常量, 不能定义构造方法. 想想也是, 接口定义的是一种规范. 在工业上, 接口定义不就是插槽的基本参数和技术规范吗? 因此接口称之为接口果然名副其实.