Java是面向对象的语言,深入理解面向对象的概念,对Java的开发至关重要。本节我们着重看下面向对象的三大特性,封装、继承、多态。
一、封装
封装是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。优点如下,
- 减少代码的耦合。
- 对外隐藏细节,对内方便修改和实现。
- 规定统一入口,控制数据访问。
实例:
- 我们新建一个Person类,里面定义两个私有属性name和age,这样外部就没法直接访问这两个私有属性,对信息进行了隐藏。
- 然后我们定义了public的对外访问入口getter和setter,这样外部就可以通过我们规定好的入口来访问这两个私有属性了。
二、继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。
比如上图,动物是个大的父类,狗、猫、老虎都属于动物,是动物的子类,它们既有动物的共性,又有自己的特性。
1、extends 单继承
Java中使用extends关键字继承抽象类,单继承,一个类只能继承一个父类。
class 子类 extends 父类 {}
2、implements 多实现
Java中使用implements关键字实现接口,多实现,一个类可以实现多个接口。
class C implements interfaceA, interfaceB{}
继承的特性如下,
- 单继承,多实现。
- 子类拥有父类非 private 的属性、方法。
- 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
- 子类可以用自己的方式实现父类的方法。
三 、多态
多态就是对象的多种形态,是同一个行为具有多个不同表现形式或形态的能力。注意,继承是多态的基础。
Java中多态主要体现在两个方面,
1.引用多态
父类的引用可以指向本类的对象。
Animal a = new Animal();
父类的引用可以指向子类的对象。
Animal a = new Dog();
2.方法多态
创建本类对象时,调用的方法为本类方法。
创建子类对象时,调用的方法为子类重写的方法或者继承的方法。
3、重载和重写
重载(overloading) 是在同一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
重写(Override)是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写。
好了,以上就是Java面向对象的三大特性,封装、继承、多态,你都理解了吗