1. 封装
把客观事物封装成抽象的类,封装可以隐藏对象的属性和实现细节,仅对外暴露公共的访问方式,使得代码模块化。
1.1. 优点
隐藏信息和细节,提高安全性;
良好的封装可以减少耦合性,提高复用性;
对类内部结构可以随意修改,只要保证公有接口始终返回正确的结果即可。
1.2. 体现
public default protected private 等设置访问权限的关键字。
比如类的属性私有化 private修饰,提供公有的 setter getter 方法对值进行获取和修改。同时,还可以在setter getter函数里进行数据校验和对返回值做限制,提高了安全性。
2. 继承
继承是指可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。目的也是为了代码重用。
2.1. 构造函数
父类中private修饰的属性和方法子类是无法继承的,构造函数只能调用而不能被继承。
子类在实例化的时候会调用自身构造器,而java编译器会默认在子类构造器的第一行用super()先调用父类的无参构造器。如果父类没有无参构造器,则子类在实例化的时候会报错。这个时候就需要显示的在子类构造器第一行(必须在第一行)指定构造器super(args)来指定调用父类哪个构造器。
2.2. protected关键字
proctected关键字修饰的属性和方法,可以隔绝外部其他类的访问,却可以让子类有权限访问。最好属性都以private修饰,父类中希望子类可以访问到,又不希望公有的方法,可以用protected修饰。
2.3. 向上转型
比如List list = new ArrayList() 将子类的实例声明为父类的类型,提高了通用性,也隐藏了子类的具体实现。
2.4. 单继承
Java 的继承是单继承,只能继承自一个类,但是可以实现多个接口。
2.5. final关键字
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写;被定义为 final 的变量不能被修改。
2.6. 缺点
继承是一种强耦合关系,子类会由于父类的改变而改变;
继承破坏了封装的特性,父类的实现和细节对于子类来说都是透明的。
3. 多态
多态是同一个行为具有多个不同表现形式或形态的能力。包括覆盖(重写)和重载,重写,是指子类重新定义父类的方法。重载,多个方法同名不同参(参数个数、参数类型等)。多态更多的是指重写。
3.1. 多态的优点
· 消除类型之间的耦合关系
· 可替换性
· 可扩充性
· 接口性
· 灵活性
· 简化性
3.2. 多态存在的三个必要条件
· 继承
· 重写
· 父类引用指向子类对象:Parent p = new Child();
3.3. 多态的实现方式
· 重写
· 接口
· 抽象类和抽象方法
0条评论
点击登录参与评论