Java-抽象类与接口

1.抽象类(abstract class):
  1.Java中,把类或者类的某些方法设定为abstract(只能修饰类和方法,不能修饰属性),
    这该类为抽象类。
  2.可声明方法而不实现。
  3.被声明为abstract的方法不能包含方法体。
  4.抽象类不能被实例化,但是可以创建一个对象时期指向具体子类的实例,子类中提供
    对抽象方法的具体实现,否则该子类也是抽象类。
  5.
2.接口(interface)
  1.接口就是多个方法的一个集合。
  2.接口中的成员变量都是static final类型的
3.抽象类与接口相同点:
  1.都不能被实例化
  2.子类只有实现了接口或抽象类中的方法才能被实例化。
4.抽象类与接口不同点:
  1.接口只有定义,方法不能在接口中实现;
    抽象类可以有定义和实现,即方法可在抽象类中实现。
   
  2.接口用implements,一个类可实现多个接口;
    抽象类用extends,一个类只能继承一个抽象类。

  3.接口强调特定功能的实现,理念是“has a”;
    抽象类强调所属关系,理念是“is a”。

  4.接口中的成员变量默认为 public static final,必须有初值;
    所有成员方法都是 public abstract 的,并且只能被这两个修饰。
  5.抽象类可以有自己的成员变量,也可以有非抽象的成员方法;
    成员变量默认为default(本包可见),也可以为其他;
    抽象成员方法(其前有abstract修饰)不能用private、static、synchronize、
    native等修饰;

  6.用抽象类,充当公共类,不适用于日后代码修改;
    用接口,便于日后维护或者添加删除方法。

  

猜你喜欢

转载自blog.csdn.net/weixin_41227335/article/details/87907115