1.封装详解
* 该露的露,该藏的藏——程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合就是仅暴露少量的方法给外部使用
* 封装(数据的隐藏)——通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,我们称信息隐藏
* 属性私有,一般通过get/set方法操作
2.什么是继承
*
* 继承的本质是对某一批类的抽象,从而实现对现实世界更改的建模
* extends 扩展,即子类是父类的扩展
* Java中类只能单继承,不允许多继承
* 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等
* 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类使用extends来表示
* 子类和父类之间,从意义上讲应该具有“is a”的关系
* Object是所有类的父类
* 子类中父类用super表示
* 父类方法的重写
方法重写
需要有继承关系,子类重写父类的方法!
1. 方法名必须相同
2. 方法参数必须相同
3. 修饰符:范围可以扩大,但不能缩小,如private->prodected->defualt->public
4. 抛出的异常:范围,可以被缩小,但不能扩大,如Exception->ClassNotFoundException
5. 方法一样,方法体不同,即实现方式不同
6. static方法,属于类,不属于实例,不可重写
7. final常量,无法改变
8. private方法,无法重写,私有的
多态
*
* 动态编译:类型,可扩展性
* 即同一方法可以根据发送对象的不同而采用多种不同的行为方式
* 一个对象的实际类型是确定的,但可以指向对象的引用类型有很多
* 多态存在的条件: * 有继承关系 * 子类重写父类方法 * 父类引用指向子类对象 抽象类
* abstract 修饰符可以用来修饰方法,也可以修饰类。如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类
* 抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类
* 抽象类,不能使用new关键字来创建对象,它是用来让子类继承的
* 抽象方法,只有方法声明,没有方法的实现,它是用来上子类实现的
* 子类继承抽象类,那么就必须要实现抽象类中没有实现的抽象方法,否则子类也要声明为抽象类