封装
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的两大原则
把尽可能多东西藏起来,对外部提供便捷的接口
把所有额属性藏起来
封装的好处
便于使用者正确的使用系统,防止错误的修改属性
有助于系统之间的松耦合,提高系统的独立性
提高软件的可重用性
降低了构建大型系统的风险
继承
解决了重用代码的问题
多态
同一个事物,由于条件不同,产生的结果也不同
同一个引用类型,使用不同的实例而执行不同的操作
方法重写是实现多态的基础。
抽象方法
拥有抽象方法的类必须声明称抽象类
抽象类中不一定有抽象方法
抽象方法必须在子类中实现。除非子类也是个抽象类
向上转型
父类的引用指向子类对象,自动进行类型转换
此时通过父类引用变量调用的方法是子类覆盖或者继承父类的方法,不是父类的方法。
此时通过父类的引用变量无法调用子类特有的方法和属性。
向下转型
将一个指向父类的对象转换成一个子类
需要强制转换。
实际运行中会出现类型转换异常。
instanceof
使用父类类型作为方法的形参;这是一种多态的应用
使用父类作为方法的返回值;