概念
面向对象具有继承、封装和多态 3 个核心特性。
继承
如同生活中的子女继承父母拥有的所有财产,程序中的继承性是指子类拥有父类的全部特征和行为,这是类之间的一种关系。Java 只支持单继承。
关于继承的注意事项:
只支持单继承,即一个子类只允许有一个父类,但是可以实现多级继承,及子类拥有唯一的父类,而父类还可以再继承。
子类可以拥有父类的属性和方法。
子类可以拥有自己的属性和方法。
子类可以重写覆盖父类的方法。
继承的特点:
提高代码复用性。
父类的属性方法可以用于子类。
可以轻松的定义子类。
使设计应用程序变得简单
无论是成员变量还是成员方法,如果没有都是向上父类中查找,绝对不会向下查找子类的。
封装
封装的目的在于保护客户信息。
封装的特点
对成员变量实行更准确的控制。
封装可以隐藏内部程序实现的细节。
良好的封装能够减少代码之间的耦合度。
外部成员无法修改已封装好的程序代码。
方便数据检查,有利于保护对象信息的完整性,同时也提高程序的安全性。
便于修改,体高代码的可维护性。
封装的使用
使用private修饰符,表示最小的访问权限。
对成员变量的访问,统一提供setXXX,getXXX方法。
多态
多态性允许一个接口被多个同类使用,弥补了单继承的不足。
多态的特点
消除类型之间的耦合关系,实现低耦合。
灵活性。
可扩充性。
可替换性。
多态的体现形式
继承
父类引用指向子类
重写
类和对象的关系可以总结为:
(1)每一个对象都是某一个类的实例。
(2)每一个类在某一时刻都有零或更多的实例。
(3)类是静态的,它们的存在、语义和关系在程序执行前就已经定义好了,对象是动态的,它们在程序执行时可以被创建和删除。
(4)类是生成对象的模板。
类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。
在真实世界的学校里,会有学生和老师等实体,学生还有学习、提问、吃饭和走路等操作。学生只是抽象的描述,这个抽象的描述称为“类”。在学校里活动的是学生个体,即张同学、李同学等,这些具体的个体称为“对象”,“对象”也称为“实例”。