1、该露的露,该藏的藏: 我们程序设计要最求“高内聚,低耦合”。高内聚就是类的内部数据操作细节由自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
2、封装(数据的隐藏): 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来直接访问,这称之为信息隐藏。
**3、记住这句话就够了:**属性私有,get/set
4、封装的意义: 1、提高程序的安全性,保护数据 2、隐藏代码的实现细节 3、统一接口 4、增加了系统的可维护性
1、继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。 2、extands的意思是“拓展”。子类是父类的拓展。 3、java中类只有单继承,没有多继承! 4、继承是类和类之间的关系。除此之外。类和类之间的关系还有依赖、组合、聚合等。 5、继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。 6、子类和父类之间,从意义上讲应该具有“is a”的关系。 super注意点 1、super调用父类的构造方法,必须放在构造方法的第一行; 2、super必须只能出现在子类的方法或者构造方法中 3、super和this不能同时调用构造方法
super VS this 代表的对象不同: this:本身调用者这个对象 super:代表父类对象的引用 前提: this:没有继承也可以使用。 super:只能再继承条件下才能使用 构造方法 this:本类的构造 super:父类的构造!
1、即同一方法可以根据发送对象的不同而采用多种不同的行为方式。 2、一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多
3、多态存在的条件 1、有继承关系 2、子类重写父类方法 3、父类引用指向子类对象
**注意:1、多态是方法的多态,属性没有多态性。 2、父类和子类,有联系 类型转换异常!ClassCastException 3、存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son(); 4、不能被重写的方法: 1、static修饰的方法,属于类,不属于实例 2、final修饰的方法 常量 3、private方法。 ** instancef (类型转换) 引用类型,判断两个类之间是否有 父子关系
总结: 1、父类引用指向子类对象。 2、把子类转换为父类,向上转型; 3、把父类转换为子类,向下转型;强制转换 4、方便方法的调用,减少重复的代码!简洁
抽象:封装、继承、多态。