Files
Hui-s-notebook/logseq-java/journals/2022_04_12.md
2024-02-02 00:12:49 +08:00

83 lines
3.0 KiB
Markdown
Raw Blame History

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