一、封装
封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象。
对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。
使用封装有三大好处:
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
二、继承
1、关键字:extends
public class Teacher extends Person {
}
2、概念:继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。继承让类与类产生了关系,为多态提供了前提。继承提高了代码的复用性。
3、使用场景:当事物之间存在所属关系时,可以通过继承来实现这个关系。如人和老师都有姓名,年龄等共同特征,这就可以把这些共同点写在一个类中作为父类。
4、特点:Java中的继承只能是单继承,即一个类只能有一个父类,当一个类没有继承关系时,它的父类是Object,Object是所有类的根类。私有的成员变量可以被继承,但不能被子类访问
5、单继承与多继承的优缺点:单继承复用性低,多继承复用性高;多继承的继承关系复杂且有菱形缺陷,单继承没有。(ps:菱形缺陷:B,C同时继承于A,D继承于B和C,如果B,C,中有同名方法,不知道该执行哪个类中继承过来的。)
三、重写
1、在继承之后重写父类的方法;继承之后才能重写。
2、重写的前提:(1)、有继承关系 (2)、子类可以访问子类和父类的方法。
3、注意事项:如果想子类方法覆盖父类方法,必须保证子类方法权限大于父类权限;子类方法访问权限大于父类方法访问权限,子类可以访问父类被重写的方法;静态只能覆盖静态,或被静态覆盖
网友评论