java 接口和抽象类 特点

2016-08-06  本文已影响99人  else05
[public] abstract class ClassName {
// 抽象方法
    abstract void fun();
}
  1. 抽象类必须在类前用abstract关键字修饰
  2. 抽象方法必须用abstract关键字进行修饰(抽象方法只有声明,没有实现)
  3. 抽象类中可以有变量或具体方法
  4. 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public
  5. 抽象类不能用来创建对象;
  6. 如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

[public] interface InterfaceName {
// ...
}
// 接口中可以有多继承,是java中唯一可以多继承的地方
[public] interface InterfaceName extends 接口1,接口2... {
// ...
}
  1. 变量会被隐式地指定为public static final变量,并且只能是public static final变量,用private修饰会报编译错误
  2. 方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如privateprotectedstaticfinal等修饰会报编译错误)
  3. 接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法

可以把接口理解成是一种极度抽象的类型,它比抽象类更加“抽象”
接口中不能使用implements , 但是可以使用extends继承多个接口,是java中唯一可以多继承的地方

上一篇 下一篇

猜你喜欢

热点阅读