自学JavaDay06
面向对象编程
封装
-
高内聚,低耦合
高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅暴露少量的方法给外部使用
该露的露,该藏的藏
-
数据的隐藏
应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏
-
属性私有,get/set
继承
-
本质:对某一批类的抽象,从而实现对现实世界更好的建模
-
extends关键字:意思是“扩展”。子类是父类的扩展。
-
在Java中,所有类都默认直接或间接继承Object类
-
在Java中,只有单继承,没有多继承
-
super
-
调用父类的构造方法,必须在构造方法的第一个
-
super必须只能出现在子类的方法或者构造方法的第一行
-
super和this不能同时调用构造方法
-
Vs this
-
代表对象不同
this:本身调用者这个对象
super:代表父类对象的应用
-
前提
this:没有继承也可以使用
super:只能在继承条件才可以使用
-
构造方法
this(); 本类的构造
super(); 父类的构造
-
-
-
重写
需要有继承关系,子类重写父类的方法
- 方法名必须相同
- 参数列表必须相同
- 方法体不同
- 修饰符:范围可以扩大但不能缩小--public>protected>default>private
- 抛出的异常:范围可以缩小,但不能扩大
为什么需要重写
- 父类的功能,子类不一定需要,或者不一定满足
alt + insert:override
多态
-
同一方法可以根据发送对象的不同而采用多种不同的行为方式
-
注意事项
- 多态是方法的多态,属性没有多态
-
继承关系,方法需要重写,父类引用指向子类对象!-- Father f1 = new Son();
-
不适用方法
- static方法:属于类,不属于实例
-
final常量
3. private方法
- instanceof关键字,类型转换
- 父类引用指向子类的对象
- 把子类转换为父类,向上转型,有可能丢失子类的一些方法
- 把父类转换为子类,向下转型,强制类型转换
- 方便方法的调用,减少重复的代码
抽象:编程思想!
static关键字
- 静态变量,静态方法,和类一起加载,且只加载一次
- 静态导入包
package com.oop.demo08;
//静态导入包
import static java.lang.Math.PI;
import static java.lang.Math.random;
public class Test {
public static void main(String[] args) {
System.out.println(random());
System.out.println(PI);
}
}
抽象类
约束
- 抽象类不能被new出来,只能靠子类实现
- 抽象类中可以写普通方法,抽象方法必须存在于抽象类中
浙公网安备 33010602011771号