1.3.1 数据抽象
用面向对象编程语言的话来说,数据抽象意味着只能展示功能,隐藏实现细节。这样做有助于掩饰多种数据的复杂性,在现实世界中,数据抽象的一个例子就是发送电子邮件,用户只需要撰写邮件,然后把它发送给其他用户就可以了,不需要知道背后的内部处理过程。
1.3.2 封装
这是面向对象编程语言的另一个特性,通过封装,方法和数据被组合或包装成一个单元,换句话说,方法和数据被封装在一起,以称为对象的单个实体形式发挥作用,这个概念也叫做数据隐藏在此过程中,数据无法被外部方法或者过程访问,只有与其组合在一起的方法才能访问到数据。
1.3.3 多态
多态是一个希腊词。多态的意思就是“一个名称,多种形式”,在面向对象的概念中,如果单个操作扮演了多种角色,那么他就称为多态。多态的一个例子是方法重载,在方法重载中多个方法可以具有相同的名称,但各自拥有不同的参数数量。
1.3.4 继承
继承是面向对象编程的关键特性,它带来的好处是能够重用对象的方法和属性,因而可以减少Java程序的代码行数,如果我们创建了一个类,在其中以属性和方法的形式定义了若干特性。随后我们需要创建另一个类,除现有类的所有特性(方法和属性)之外,还具有一些新的特性(方法和属性),在这种情况下无需再单独创建一个内,我们可以从现有内容派生出新类,在新内容添加新特性,这样就能够避免重复同样的代码。
从技术上来说,继承是一种从现有类中派生出新类的技术,可以在新类中重用现有类的特性,派生出的类也称为次类或子类,用于派生出新类的类称为超类、基类或父类。
在Java中,主要包含以下3种继承类型:
- 单一继承
- 多级继承
- 层次继承
单一继承:如果从父类中派生一个类就叫做单一继承。
多级继承:如果一个类是从另一个派生类中派生出来的,就叫做多重继承。
层次继承:如果从单个基类中派生出多个类,就叫做层次继承。
在面向对象编程中还有一种继承类型叫做多重继承,在多重继承中,一个类派生自多个父类 。Java的设计者认为,这种继承太过复杂与保持Java简单性的观念不能很好的契合,因此Java并没有实现多重继承。
1.3.5 接口
接口是类的蓝图,它与类非常相似,但只包含抽象方法,抽象方法是仅有声明但不包含任何实现的方法,接口可能也包含常量,方法签名,默认方法,静态方法,但它不具有任何构造函数,因此无法被实例化,接口只能由类来实现或者通过其他接口扩展,类继承接口的抽象方法来实现它。我们可以使用接口实现抽象和多重继承,还可以从任意数量的接口派生类。