抽象类和接口的区别
抽象类 extends
抽象方法:abstract void fun()
抽象类是用abstract
修饰的一个类。因为抽象类中有无具体实现的方法,所以不能实例化;抽象类不一定包含抽象方法;
abstract class fun{
abstract void fun();
}
注意点:
- 抽象方法必须是
public
或protected
(因为如果是private
子类就不能实现这个方法); - 如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类;
- 抽象类不能创建对象。
接口 implements
接口就是对行为的抽象,接口中可以含有方法和变量。其中变量必须以public static final
修饰;方法必须以public abstract
修饰。
interface fun(){}
抽象类和接口的区别
- 变量:任何类型(抽象类)/
public static final
(接口) - 方法:任何类型-抽象方法、方法(抽象类)/
public abstract
(接口) - 抽象类是对事物的抽象,接口是对一个行为的抽象