Java面向对象的三大特征
封装
private< Default < protected < public
属性私有,Getter and Setter
优点:
- 提高程序的安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 系统的可维护性
继承
- 继承(extends)的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
- 一个子类只有一个父类,一个父类有多个子类
- super:
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法、
- this:
- 代表的对象不同:this :本身调用者这个对象;super:代表父类对象的应用
- 前提: this:没有继承也可以使用; super:只能在继承条件才可以使用
- 构造方法:this();本类得到构造 super() : 父类的构造
- 重写:需要有继承关系
- 方法名必须相同
- 参数列表列表必须相同
- 修饰符:范围可以扩大但不能缩小; public>Protected>Default>private
- 抛出的异常:范围,可以缩小,但不能扩大: classNotFoundException --> Exception(大)
多态
- 同一方法可以根据发送对象的不同而采用多种不同的行为方式。
- 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)
- 多态是方法的多态,属性没有多态
- 多态存在的条件:
- 有继承关系
- 子类重写父类方法
- 父类引用指向子类对象(Person a = new Student())
- 把子类转换为父类,向上转型;
- 把父类转换为子类,向下转型;强制转换;
- 方便方法的调用,减少重复的代码!
特殊关键字
instanceOf
java中,instanceof运算符的前一个操作符是一个引用变量,后一个操作数通常是一个类(可以是接口),用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是返回true,否则返回false。
static
abstract
- 可以用来修饰方法也可以修饰类
- 抽象类可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类
- 抽象类不能用new关键字来创建对象,他是用来让子类继承的。
- 抽象方法只有方法的声明,没有方法的实现,他是用来让子类实现的
- 子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。
interface implements
- 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。
- OO面向对象的精髓,是对对象的抽象。
- 接口里面的属性是静态常量的public static final,不建议
- 不能被实例化