java三大特性,从源代码就可看出,这是贯穿整个java很重要的思想,也是越用越觉得高明的设计。
一。继承
用extends表示子类继承父类,来实现代码复用。子类可以重用父类的非private成员变量和方法。但java是单继承,即一个子类只能继承一个父类。
子类不能继承父类的构造函数,只能通过super来调用。super( )只能在子类的构造函数中出现,并且永远都是位于子类构造函数中的第一条语句。
Java中通过super来实现对被隐藏或被覆盖的父类成员的访问。super 的使用有三种情况:
1. 访问父类被隐藏的成员变量和成员方法;
super.成员变量名;
2. 调用父类中被覆盖的方法,如:
super.成员方法名([参数列]);
3. 调用父类的构造函数,如:
super([参数列表]);
二。封装
封装就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。
减少相互间的依赖,降低耦合,容易维护和使用;内部逻辑更改迭代不会影响客户的使用;保证了程序和数据不受外部干扰且不被误用,安全性提高。
常用的是四种修饰符,访问权限由大到小为:public>protected>void>private
其中,public型无限制,protected型限制为子类或包内可访问,void型限制包内可访问,private型限制仅类中可访问。
三。多态
多态是同一个行为具有多个不同表现形式或形态的能力。
多态存在的三个必要条件:
1. 要有继承;
2. 要有重写;
3. 父类引用指向子类对象。
多态的好处:
1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
4.灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。