Java语言有三大特性:封装、继承、多态。
封装:主要是将类中的部分代码实现细节隐藏、封装起来,不直接对外提供访问。
封装的优点:
1、 良好的封装能够减少耦合。
2、 类内部的结构可以自由修改。
3、可以对类成员进行更精确的控制。
4、隐藏信息,实现细节。
封装基本使用:
-
使用
private
关键字来修饰类的成员(成员变量和成员方法)以及类。 -
对需要访问的成员变量,提供对应的一对public的 getXxx方法 、setXxx 方法。
-
private
修饰的成员方法,只允许本类中的其他方法调用; -
private
修饰的类,只能作为内部类使用(内部类后续详解)。
继承:主要体现的父子类的关系上,提高了软件的可重用性和可扩展性;
继承的优点:
1、提高代码的复用性。
2、 类与类之间产生了关系,是多态的前提。
继承中的成员变量
如果子类父类中出现不重名的成员变量,这时的访问是没有影响的。
子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需 要使用 super 关键字,修饰父类成员变量。
如果子类父类中出现重名的成员变量,这时的访问是有影响的。
如果子类出现与父类重名方法,但是方法参数不同,这种情况属于方法重载。
如果子类出现与父类重名方法,同时方法参数也相同,这种情况叫做方法重写Override。
重写的应用:子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从而进行扩展增强。
多态:包括编译时多态和运行时多态,通过调用不同参数或名称的方法来决定父类对象动态调用哪个子类方法,增强了代码的灵活度。
实现运行时多态有 3 个必要条件:继承、重写和向上转型
继承:在多态中必须存在有继承关系的子类和父类。
重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又能调用子类的方法。