3.0 KiB
3.0 KiB
- final
- 抽象类
- 接口
- 多态
- 总结
collapsed:: true
- final
- 最终的,最后的
- 修饰类
- 表示该类为最终类,不能被继承
- 修饰方法
- 表示该方法不能被子类重写
- 修饰变量
- 表示该量为一个常量
- 抽象类
- 具有抽象方法的类
- 当某一方法没有具体的实现案例时,此方法为一个抽象方法
- 不能被实例化,因为有方法不确定
- 抽象类中的抽象方法在子类中重写去实现
- 特点
- 具有抽象方法的类,一定是个抽象类
- 抽象类不一定具有抽象方法
- 抽象类通过abstract定义,并且抽象方法一定要在子类中实现
- 假如子类也实现不了这个方法,将子类也定义为抽象类
- 抽象类无法实例化
- 可放置的元素
- 抽象方法
- 非抽象方法
- 成员属性
- 构造器
- 面试题
- 抽象方法,可以定义成私有的不?
- 答:私有代表无法被重写,抽象方法是一定要子类重写!
- 抽象方法,可以定义为static的么?
- 答:static方法的调用方式:类名.方法名 意味着:这个方法一定有过实现;但是抽象方法实现了么?
- 抽象方法,可以定义为final的么?
- 答:final 定义在方法上,表示这个方法不能被重写;但是抽象方法一定需要子类重写!
- 抽象方法,可以定义成私有的不?
- 接口
- 也是一种抽象,比抽象类还要抽象
- 作用:帮系统拓展新的功能
- 使用
-
public interface 接口的接口名{ //需要拓展的功能 } -
访问修饰符 class 类的类名 extends 父类 implements 接口{ //原有及接口拓展的功能 }
-
- 特点
- 接口不能被实例化
- 接口中抽象方法,默认为publlic abstract
- 接口中抽象方法,必须要通过类给与实现
- 接口中的抽象方法,实现类可以变成抽象类,及可以实现接口中的方法
- 类只能单继承,但是接口可以多实现
- 类只能单继承,但是接口可以多继承
- 多态
- 多种形态
-
相同的行为,不同的实现
- 静态多态
- 重载
- 动态多态
- 根据传入的对象不一样,调用相同的行为,拥有不同的实现
- 动态多态先决条件
- 必须要继承,必须要有方法的重写
- 父类的引用,可以指向子类的实现
- 父类的引用,看不到子类独有的东西
- 子类的引用,可以看到父类的东西,也可以看到自己独有的
- 动态绑定技术
- 父类的引用,指向不同子类的是实现,会自动调用对应子类的行为
- 用处
- 多态集合
-
Object[] objts = new Object[10];
-
- 多态参数
- 在一个方法中,将父类定为参数,调用的时候,传入对应子类的实现
- 由于多态的特点,做到:传入不同的子类,调用相同的行为,可以做到不同的实现
- 多态集合
- final