封装
封装是当前属性被 private 所修饰,在类外不能够访问,只能在类内访问,意义是能够降低代码的管理复杂度,类的调用者不需要知道是怎么实现的,只需要调用get和set方法就可以,就好像我们看不到空调内部的零件信息,但是却能使用遥控器控制空调
Java提供了3个访问控制符:private、protected、public 还有一个是包访问权限(default)
private(当前类访问权限):类内部可以访问,类外部不能访问
default(当前包访问权限):类内部可以访问,同一个包中的类可以访问,其他类不能访问
protected(子类访问权限):可以被同一包中其他类访问,也能被不同包中的子类访问,其他类不能访问
public(公共访问权限):都能访问
继承
继承是使用已存在的类的定义作为基础建立新的类,新类的定义可以增加新的数据和新的功能,但是不能选择性的继承父类,就比如描述狗和猫,两者都有名字和年龄,但是叫声不同,那就可以写一个动物类,让猫类和狗类继承动物类,继承是一个is-a
的关系
好处是提高代码的复用性,程序的可维护性,提高开发效率
子类继承父类除构造方法以外的所有属性和方法
子类要帮助父类进行构造
多态
多态发生的前提主要有3个:
1.父类引用引用子类对象
2.父类和子类有同名的覆盖方法
3.通过父类引用调用这个重写方法的时候,就会发生多态
将一个父类的引用指向子类的对象,称为向上转型,自动进行类型转换
此时通过父类引用调用的方法是子类覆盖或继承父类的方法,此时就发生了运行时绑定
如果父类要调用子类特有的方法,就要将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型,此时必须进行强制类型转换
如果需要向下转型就要使用instanceof来判断一个引用是否是某个类的实例,如果是,返回true,这样向下转型才安全
好处是:隐藏了子类类型,提高了代码的可扩展性
坏处是:只能使用父类的功能,无法使用子类的特有功能,功能有限制