-
final关键字的用法:
- final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的。
- fianl关键字修饰一个引用类型变量时,该变量不能重新指向新的对象。
- final关键字修饰一个函数的时候,该函数不能被重写。
- final关键字修饰一个类的时候,该类不能被继承。
-
抽象(abstract)类要注意的细节:
- 如果一个函数没有方法体,那么该函数必须要使用abstract修饰,把该函数修饰成抽象 的函数。。
- 如果一个类出现了抽象的函数,那么该类也必须 使用abstract修饰。
- 如果一个非抽象类继承了抽象类,那么必须要把抽象类的所有抽象方法全部实现。
- 抽象类可以存在非抽象方法,也可以存在抽象的方法.
- 抽象类可以不存在抽象方法的。
- 抽象类是不能创建对象的。
- 抽象类是存在构造函数的,其构造函数是提供给子类创建对象的时候初始化父类的属性的。
-
接口的定义格式:
interface 接口名{
}
接口要注意的事项 :
1. 接口是一个特殊的类。
2. 接口的成员变量默认的修饰符为: public static final 。那么也就是说接口中的成员变量都是常量。
3. 接口中 的方法都是抽象的方法,默认的修饰符为: public abstract。
4. 接口不能创建对象。
5. 接口是没有构造方法的。
6. 接口是给类去实现使用的,非抽象类实现一个接口的时候,必须要把接口中所有方法全部实现。
实现接口的格式:
class 类名 implements 接口名{
}
- 类与接口之间关系: 实现关系。
类与接口要注意的事项:
1. 非抽象类实现一个接口时,必须要把接口中所有方法全部实现。
2. 抽象类实现一个接口时,可以实现也可以不实现接口中的 方法。
3. 一个类可以实现多个接口 。
接口与接口之间关系: 继承关系。
接口与接口之间要注意事项:
1. 一个接口是可以继承多个接口的。
- 多态:一个对象具备多种形态。(父类的引用类型变量指向了子类的对象)
或者是接口 的引用类型变量指向了接口实现类的对象)
多态的前提:必须存在继承或者实现 关系。
动物 a = new 狗();
多态要注意 的细节:
1. 多态情况下,子父类存在同名的成员变量时,访问的是父类的成员变量。
2. 多态情况下,子父类存在同名的非静态的成员函数时,访问的是子类的成员函数。
3. 多态情况下,子父类存在同名的静态的成员函数时,访问的是父类的成员函数。
4. 多态情况下,不能访问子类特有的成员。
总结:多态情况下,子父类存在同名的成员时,访问的都是父类的成员,除了在同名非静态函数时才是访问子类的。
- 多态的应用:
- 多态用于形参类型的时候,可以接收更多类型的数据 。
- 多态用于返回值类型的时候,可以返回更多类型的数据。
多态的好处: 提高了代码的拓展性。