网站首页 > java教程 正文
面向对象的三个基本特征是:封装、继承、多态。
封装
封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
封装的优点
- 将变化隔离
- 便于使用
- 提高重用性
- 提高安全性
封装的缺点:
将变量等使用private修饰,或者封装进方法内,使其不能直接被访问,增加了访问步骤与难度!
封装的实现形式
- A、使用访问权限修饰符private 在定义JavaBean时对于成员变量使用private进行修饰,同时对外提供set、get方法 使用了private修饰的成员在其他类中不能直接访问,此时需要使用set、get方法进行。
- B、定义一个Java类与Java的方法就是最简单最常见的面向对象的封装操作,这些操作符合隐藏实现细节,提供访问方式的思路。
继承
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。
要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。
在Java语言中,一个类只能单继承,可以实现多个接口。继承就是子类继承父类的特征和行为,使得子类对象具有父类的非private属性和方法。
类的继承格式:
通过extends关键字申明一个类继承另一个类,如
class父类{}
class子类extends父类{}
为什么需要继承?
- 减少代码重复、臃肿,提高代码可维护性。
继承的特性:
- 子类拥有父类非private的属性和方法;
- 子类可以拥有完全属于自己的属性和方法(对父类扩展);
- Java是单继承(每个子类只能继承一个父类);但是Java可以是多重继承(如A继承B,B继承C)。
Super和this关键字:
Super关键字:我们可以通过super关键字来实现子类对父类成员的访问,引用当前实例对象的父类。
This关键字:指向实例对象自己的引用。
多态
多态就是同一个接口,使用不同的实现,而执行不同的操作。
多态的三个必要条件:
- 继承(extends)
- 重写(子类重写父类的同名方法)
- 父类引用指向子类的对象,如:
子类继承父类,重写父类的方法,当子类对象调用重写的方法时,调用的是子类的方法,而不是父类的方法,当想要调用父类中被重写的方法时,则需使用关键字super。
猜你喜欢
- 2024-10-21 从零学java笔录-第39篇 基础第二阶段 1 面向对象思想及概述
- 2024-10-21 C/C++编程笔记:C++面向对象和Java面向对象的区别
- 2024-10-21 面向对象—java中类与对象#java基础
- 2024-10-21 Java面向对象特征(java的面向对象特征)
- 2024-10-21 Java基础语法之面向对象(java中的面向对象)
- 2024-10-21 Java面向对象概念解析(java面向对象的意思)
- 2024-10-21 java中的面向对象总结(java中的面向对象总结法是什么)
- 2024-10-21 有图有码,带你重新认识java面向对象三大特性!
- 2024-10-21 java面向对象总结(java面向对象知识点总结)
- 2024-10-21 好程序员Java培训分享Java面向对象概念解析
你 发表评论:
欢迎- 07-21如何将 iPhone 中的联系人导出到 Excel/CSV?
- 07-21sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 07-21在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 07-21如何把csv格式转换成Excel格式(csv格式怎么转换)
- 07-21如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 07-21使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 07-21解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 07-21使用vba将Excel 文件转成 CSV 文件
- 最近发表
-
- 如何将 iPhone 中的联系人导出到 Excel/CSV?
- sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 如何把csv格式转换成Excel格式(csv格式怎么转换)
- 如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 使用vba将Excel 文件转成 CSV 文件
- python爬虫25 | 爬取的数据怎么保存?CSV了解一下
- MySQL 导出数据(mysql 导出数据 判断成功)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)