抽象类
1、含有抽象方法的类称之为抽象类,并且必须用abstract关键字修饰(抽象类是可以含有普通的方法的)
2、抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。
abstract void fun();
3、抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
4、抽象类不能用来创建对象。
5、如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
接口类
1、接口中可以含有 变量和方法。
2、变量必须定义为public static final(默认就是这个)
3、方法会被隐式地指定为public abstract方法且只能是public abstract方法
4、方法不可以有具体的实现
抽象类和接口类的相同点
抽象类和接口类的区别
接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化
抽象类和接口类的区别
抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
一个类只能继承一个抽象类,而一个类却可以实现多个接口。