![](https://csdnimg.cn/release/download_crawler_static/86181577/bg3.jpg)
对象,这样的类就是抽象类。抽象类往往用来表示我们在对问题领域进行分析、设计中
得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
14. 抽象类可以有自己的数据成员,也可以有非 abstract 得成员方法,也可以由抽象方法,
抽象方法只有函数定义部分,没有函数体,函数的具体实现要在子类中编写。
15. 抽象类的继承:抽象类是一种特殊的类,必须通过继承才能够使用,继承的方法与普通
的类没有什么区别使用 extends 关键字,不同的是 ,它必须实现所有的 abstract 方法。
16. 不能被继承的类 ----------最终类 (final)
在设计类时,如果这个类不需要子类,类的实现细节不允许改变,并确信这个类不会被
再扩展,那么就设计为 final 类。 Final 类不被继承,因此 final 类的成员方法没有机会被
覆盖,默认都是 final 的。
(1) final 类不能被继承,没有子类, final 类中的方法默认是 final 的。
(2) final 方法不能被子类的方法覆盖,但可以被继承。
(3) final 成员变量表示常量,只能被赋值一次,赋值后值不能再改变
(4) final 不能修饰构造方法
(5) 另外注意:父类的 private 成员方法是不能被子类方法覆盖的,因此 private 类型的
方法默认是 final 类型的
(6) 使用 final 方法的原因有两个:
把方法锁定,防止任何继承类修改它的意义和实现。
高效,编译器在遇到调用 final 方法时会转入内嵌机制,大大提高执行效率
对于 final static 类型的成员变量, static 使得变量只存在一个副本 ,final 使得它不能
改变
(7).final 成员只能被初始化一次。
Final 成员必须在声明时或者在构造方法中被初始化, 而不能在其他的地方被初始化。
17. 多重继承: Java中通过接口可以实现多重继承。 使多个不相关的类可以具有相同的方法。
18. Java中的接口是一系列方法的声明,是一些方法特征的集合,接口只有方法的特征没有
方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不
同的行为。
19. 在 Java语言规范中,一个方法的特征仅包括方法的名字、参数的数目和类型,而不包括
方法的返回类型、 参数的名字及抛出来的异常。 在 Java 编译器检查方法的重载时, 会根
据这些条件判断两个方法是否是重载方法。 但在 Java编译器检查方法的置换时, 则会进
一步检查两个方法 (分超类型和子类型 )的返回值类型和抛出的异常是否相同。
20. 接口继承和实现继承的规则不同,一个类只能有一个直接父类,但可以实现多个接口。
21. 接口的存在可以使 Java中的对象向上转型为多个基类型, 并且和抽象类一样可以防止他
人创建该类的对象,因为接口不允许创建对象。
22. Interfa 关键字用来声明一个接口, 它可以产生一个完全抽象的类, 并且不提供任何具体
实现。接口的特性整理如下:
(1).接口中的方法可以有参数列表和返回值类型,但不能有任何方法体
(2).接口中可以包含字段,但是会被隐式的声明为 static 和 final
(3).接口中的字段只是被存储在该接口的静态存储区内,而不属于该接口
(4).接口中的方法可以被声明为 public 或不声明,但结果都会按照 public 类型处理
(5)实现一个接口时, 需要将被定义的方法声明为 public 类型,否则为默认访问类型, Java
编译器不允许这种情况
(6).如果没有实现接口中的所有方法,那么创建的仍然是一个接口
(7).扩展一个接口来生成新的接口应使用关键字 extends,实现一个接口使用 implements.