打算记录一下自己学习Java的过程,顺便理顺一下自己的知识与体系,会逐渐完善的。
本文介绍的是面向对象的特性:封装、继承和多态。
【封装】
先来说一下封装:封装性是面向对象编程的核心思想,其实就是将描述某种实体的数据和基于这些数据的操作集合到一起,形成一个封装体。封装性是通过访问修饰符来限定应用程序内文件的访问级别的。Java语言中的访问控制级别有4种,分别是public、protected、default和private。
public意为共有的、公共的,访问级别最高,使用此修饰符的成员被访问时不受任何限制。 protected意为受保护的,使用此修饰符的成员只能由派生类或统一程序包中的类进行访问。 default意为默认的,使用此修饰符的成员只能由统一程序包中的类进行访问。 private意为私有的,访问级别最低,使用此修饰符的成员只允许自身所在的类进行访问。 使用过程中应该注意:
- 不能使用protected和private去修饰类
- 要尽量遵循“尽可能保持数据的私有性”原则
对属性的封装
以Car类为例,相对于brand(品牌)这个变量而言,seats(座位数)少了setSeats()方法,这就表示seats这个变量只能在Car类中进行修改。
类中方法的封装
上面实现了对方法SmallCar()的封装,在方法的调用过程中,先将所需调用方法所在的类SmallCar进行实例化,再通过类的实例化进行方法的调用,如下图,这样在多次使用print()输出语句的时候就可以进行代码的复用,节省时间。
【继承】
继承也称为泛化,表现的是一种共性与特性的关系。Java中只支持单继承,一个类可以继承另一个类,并在此基础上添加自己的特有功能,被继承的类叫父类(parent class)或超类(super class),继承父类的类叫子类(subclass)或派生类(derived class)。如果一个类没有指明任何父类,则缺省的自动继承java.lang.Object类(Object类是所有类的顶级父类,在Java中所有类都是直接或间接的继承了Object类)。
继承是通过关键字extends来实现的,如下图
【多态】
1.方法重写(override)。主要应用于父类与子类之间,如果父类无法满足子类的要求,则可以在子类中对父类的方法进行改造。方法重写需要遵循几点:
- 方法签名(方法名和参数列表)必须完全相同
- 子类方法的返回值类型(或声明异常)可以与父类的相同或是其子类
- 父类中的私有方法不能被重写
- 子类方法的可访问性可以与父类的相同或是更公开。例如父类方法的可访问性为protected,则子类方法可以为public或protected。
- 静态方法不存在重写的概念。
如下例,子类SmallCar重写了Car中的start()方法,在main方法中,构造了SmallCar的实例并调用了start()方法。
运行结果如下,由于重写了父类Car的start()方法,所以在调用SmallCar实例start()方法时使用的是其重写后的方法。
如下图,A()方法接收了car类型的参数,main()方法中分别向A()方法传入了Car、SmallCar类的对象
执行结果如下:可看出构造SmallCar实例的start()方法时使用的是重写后的方法,构造Car实例的start()方法时使用的是重写前的方法。
2.方法重载。通常是指同一个类中,相同的方法名对应不同的方法实现,即方法所需要的参数不同。方法重载是同一个类中多态性的一种表现。进行方法重载时,有三条原则要遵守:
- 方法名相同
- 参数列表(个数、类型、顺序)不同
- 返回值不作为方法签名
如图,在Car类中,定义的两个start()方法的参数不同,所以进行重载。
结果如下,相同方法名对应不同的结果,也就是相同方法名对应不同的方法实现。
在使用面对对象的方式解决问题时,一定不要忘记其特性,运用其特性提高效率及安全性。
相关推荐
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素...
java总结,基础语法,面向对象,封装继承多态,异常
使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,...
C# 一个完整的类 面向对象三大特性 封装 继承 多态 的示例 封装通过私有字段和公共方法来实现对数据的访问控制。 继承通过派生类Student继承自Person类,获得了Person类的所有属性和方法,并在此基础上扩展了自己的...
JAVA面向对象基础测试题-继承-封装-多态等测试题.docx
java基础_继承封装 多态,概念的梳理,对初学者很有帮助,看一遍就清楚了
该文档是我参加java培训期间学到面向对象还有集合的时候所记录的笔记,有图有文字,主要有继承,封装,多态和集合,非常适合刚学习的新手,很有建设性,对小白帮助比较大
主要介绍了Java面向对象编程(封装/继承/多态)实例解析的相关内容,具有一定参考价值,需要的朋友可以了解下。
面向对象编程二继承封装和多态2022优秀文档.ppt
言简意赅的讲解面向对象封装、继承、多态的概念
jave面向对象特性继承、封装、多态的实验报告,jave重要实验。
只是一个简单的小例子,演示了OC中的封装继承多态,在Windows下打成的zip压缩包
Java面向对象内容的详细讲解,适合初学者学习,有七章节面向对象文档内容。
刚学c#查找资料,用C#做了个计算器,功能不太完善,希望给大家有点提示。
java语言实验3指导面向对象程序设计继承、封装、多态.docx
学习Java程序入门-面向对象之封装,继承,多态(下).docx
本文主要介绍了面向对象的三大特性:封装、继承、多态,提供了简单的示例供大家参考和理解。
主要介绍了Python 面向对象之封装、继承、多态操作,结合实例形式分析了Python面相对象程序设计中封装、继承、多态相关操作技巧与使用注意事项,需要的朋友可以参考下