[color=red]抽象类:[/color]包含抽象方法的类叫做抽象类
[color=red]注:[/color]如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的(否则,编译器会报错。)
如果子类的父类是抽象的,那么子类必须实现所有父类的抽象方法。否则,子类也是抽象的(由定义即可判段)。抽象类不需要所有的方法都是抽象的,所以仅需将某些方法声明为抽象的即可。
[color=red]作用:[/color]创建抽象类和抽象方法可以是类的抽象性明确起来,同时,抽象类还是很有用的重构工具,因为它们使得我们可以很容易地将公共方法沿着继承的层次结构向上移动。
[color=red]接口:[/color]interface关键字产生一个完全的抽象类,它根本就没有提供任何具体实现。
[color=red]一个接口表示:[/color]所有实现了该特定接口的类看起来都像这样
interface 前不添加public关键字,则只具有包访问权限,只能在同一个包内可用,接口也可以包含域,但是这些域隐式地是static和final的。
[color=red]注:[/color]如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的(否则,编译器会报错。)
如果子类的父类是抽象的,那么子类必须实现所有父类的抽象方法。否则,子类也是抽象的(由定义即可判段)。抽象类不需要所有的方法都是抽象的,所以仅需将某些方法声明为抽象的即可。
[color=red]作用:[/color]创建抽象类和抽象方法可以是类的抽象性明确起来,同时,抽象类还是很有用的重构工具,因为它们使得我们可以很容易地将公共方法沿着继承的层次结构向上移动。
[color=red]接口:[/color]interface关键字产生一个完全的抽象类,它根本就没有提供任何具体实现。
[color=red]一个接口表示:[/color]所有实现了该特定接口的类看起来都像这样
interface 前不添加public关键字,则只具有包访问权限,只能在同一个包内可用,接口也可以包含域,但是这些域隐式地是static和final的。