Java三大特性之封装继承多态
来源:互联网 发布:linux 查看内存使用 编辑:程序博客网 时间:2024/05/17 18:00
一、 封装
1. 封装是什么?
访问权限的控制常常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称为“封装”。
通常人们也单独只将具体实现的隐藏称为封装
隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别(POJO)
(我只给你看我希望你看到的东西,不该给你的东西你不需要知道)
2. 为什么封装?
封装的意义在于,这一点并不重要,重要的是类对外提供的方法。
增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
3. 以POJO为例论封装的优点
package com.ashes.bean;public class UserLogin { private String username; public UserLogin() { super(); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; }}
此类有三项内容:
- 一个私有的数据域
- 一个公有的域访问器方法
- 一个公有的域更改器方法
优点:
(1)可以改变内部实现,除了该类的方法之外,不会影响其他代码。
(2)更改器方法可以执行错误检查,然而直接对域进行赋值将不会进行这些处理(例如给名字做正则表达式处理)
补充:
POJO的格式是用于数据的临时传递,它只能装载数据,作为数据存储的载体,而不具有业务逻辑处理的能力。
4、权限的访问
控制对成员的访问权限有两个原因:
(1)为了使用户不要碰触那些他们不该碰触的部分,这些部分对于类内部的操作时必要的,但是它们并不属于客户端程序员所需要的一部分;
(2)为了让类库设计者可以更改类的内部工作方式,而不必担心这样会对客户端程序员产生重大影响。
二、继承
1. 继承是什么?
基于已存在的类构造一个新类。继承已存在的类就是复用(继承)这些类的方法和域。在此基础上,还可以添加一些新的方法和域,以满足新的需求。
基类和派生类之间的关系称为“is-a”(是一个)关系
is-a表明子类的每个对象也是超类的对象
(我是你但又不是你,我是你因为我有你的可访问的所有的属性和方法,但我又不是你,因为我可以对你进行扩展)
2. 为什么继承?
为了提高代码的重用性,使代码更加简洁(代码共享)
3.聚合是什么?
只需在新的类中产生现有类的对象,由于新的类是由现有类的对象所组成,所以这种方法称为“聚合”。
聚合经常被视为“has-a”(拥有)关系
(我有你就可以使用你的属性和方法)
4. 组合和继承产生的竞争
组合和继承都允许在新的类中放置子对象,组合是显式地这样做,而继承是隐式地做。
5. 继承的缺点
- 继承是侵入式的,只要你继承,不管你要不要,都会给你
- 增强了耦合性,当父类的常量、属性、方法需要修改的时候,需要考虑子类的修改。
- 降低了代码的灵活性
重点内容
三、多态
1. 多态是什么?
一个对象变量可以指示多种实际类型的现象被称为“多态”
多态:一种数据类型多种表现形式(一个接口,多种实现)
(1)有继承关系(2)子类引用赋值给父类对象(3)方法的重写
2. 重写
子类定义一个和父类相同的方法
(子类方法不能低于父类的可见性)
(1)方法名相同
(2)参数列表相同
(3)返回值类型一致
3. 重载
方法名相同,
参数列表不同(类型不同、个数不同、顺序不同)
4. 动态绑定
在运行时能够自动地选择调用哪个方法的现象称为“动态绑定”
阅读全文
0 0
- Java三大特性之封装继承多态
- OC语言-三大特性之封装继承多态
- JAVA的三大特性:封装、继承与多态
- Java三大特性,封装继承多态
- java三大特性封装、继承、多态概述
- Java之面向对象的三大特性:封装,继承,多态讲解
- Java三大特性之封装、继承、多态
- java三大特性:封装、继承、多态
- java 三大特性 封装 继承 多态
- Java三大特性,封装、继承、多态
- Java三大特性---封装,继承,多态
- Java三大特性(封装,继承,多态)
- java三大特征之封装,继承,多态浅析
- java三大特性之继承和多态
- JavaScript三大特性,继承封装多态
- C++三大特性封装继承多态
- 黑马程序员-OC之面向对象的三大特性:封装、继承和多态
- java基础三大特性——封装、继承与多态
- java中Arraylist源码分析扩容过程和性能优化
- JavaWeb开发Eclipse+Tomcat环境下配置JSTL
- Linux 系统命令及其使用详解
- zabbix-添加主机、item、graph、screen。
- SSM-9 权限 功能管理
- Java三大特性之封装继承多态
- zabbix创建触发器、action,发送报警邮件
- Result Maps collection already contains value
- curve函数画图和plot函数画图
- centos7 没有iptables 生成
- zabbix创建用户,用户组
- mysql联表及分页
- java集合练习
- 【Kotlin】官方文档翻译-接口(Interfaces)