抽象类和接口的区别

抽象类 extends

抽象方法:abstract void fun()

抽象类是用abstract修饰的一个类。因为抽象类中有无具体实现的方法,所以不能实例化;抽象类不一定包含抽象方法;

abstract class fun{
    abstract void fun();
}

注意点:

  • 抽象方法必须是publicprotected(因为如果是private子类就不能实现这个方法);
  • 如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类;
  • 抽象类不能创建对象。

接口 implements

接口就是对行为的抽象,接口中可以含有方法和变量。其中变量必须以public static final修饰;方法必须以public abstract修饰。

interface fun(){}

抽象类和接口的区别

  • 变量:任何类型(抽象类)/public static final(接口)
  • 方法:任何类型-抽象方法、方法(抽象类)/public abstract(接口)
  • 抽象类是对事物的抽象,接口是对一个行为的抽象

猜你喜欢

转载自www.cnblogs.com/bingo2-here/p/8980343.html