Java基础学习总结(三)—— 面向对象特征(封装|继承|多态)
来源:互联网 发布:矢量 软件 编辑:程序博客网 时间:2024/05/29 15:57
一、封装性
1、含义
将对象的状态信息(属性)隐藏在对象内部,不允许外部程序直接访问对象的内部信息。而是通过该类所提供的方法来实现对内部信息的操作和访问。
2、权限修饰符
通过定义,我们知道要想把对象的属性隐藏在对象内部,就需要限定它的权限,所以要用到权限修饰符。
Java提供了4个访问控制级别,从大到小分别为:
public—>protected—>缺省(default)—>private
二、继承性
1、特点
Java继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类(基类、超类)。
2、语法格式
修饰符 class SubClass extends SuperClass{
//类定义部分
}
SubClass 为子类,SuperClass为父类
3、注意点
- 子类继承父类后,父类中声明的属性、方法,子类就可以获取到。
- 当父类中有私有的属性或方法时,子类同样可以获取到,只是由于封装性的设计,使得子类不可以直接调用。
- 子类除了通过继承获取父类的结构之外,还可以定义自己特有的部分。
- extends:子类是对父类功能的“扩展”,子类不是父类的子集。
- Java中类的继承性是单继承,即一个类只能继承一个父类,但一个父类可以有多个子类。
三、多态性
1、多态性的表现
- 方法的重载与重写
- 子类对象的多态性
2、使用的前提
- 要有继承关系
- 要有方法的重写
3、格式
Person p = new Man();
(Man继承于Person)
注意点:
1. 编译时,认为p是Person类型的,故只能执行Person里才有的结构,即Man里特有的结构不能调用。
2. 子类对象的多态性,并不适用于属性。
4、向上(下)转型
- 向上转型
Person p = new Man(); - 向下转型
Man m = (Man)p;
向下转型要使用强转符() - 为了不报ClassCastException(类型转换异常),最好在向下转换之前,进行判断:instanceof
if (p instanceof Man){ Man m = (Man)p;}
四、方法的重写vs重载
重写(override)与重载(overload)的区别
- 重载
①在同一个类中。
②方法名必须相同。
③方法的参数列表不同(参数个数不同或参数类型不同) - 重写
(前提:在继承的基础上,子类在获取了父类的结构之后,可以对父类中同名的方法进行“重构”。)
①方法的返回值,方法名,形参列表相同。
②权限修饰符的级别不小于父类中同名的方法。
③子类方法的异常类型不大于父类的。
④两个方法(子类和父类)要同为static或同为非static。
阅读全文
0 0
- Java基础学习总结(三)—— 面向对象特征(封装|继承|多态)
- java学习总结(16.06.10~16.06.17)面向对象的三大特征——封装、继承、多态
- java基础<面向对象>总结(函数、封装、继承、多态)
- 面向对象三大特征:继承、封装、多态 (泛型)
- Java基础——面向对象(封装、继承、多态)
- java语言基础(23)——面向对象三大特性(封装、继承、多态)
- 黑马程序员——面向对象三大特征(封装、继承、多态)
- 黑马程序员——OC笔记之面向对象三大特征(封装、继承、多态)
- 黑马程序员学习日记 (四)面向对象三大特征: 封装 继承 多态
- java、面向对象的三大特征封装、继承、多态
- java面向对象的三大特征:封装,继承,多态
- java面向对象三大特征:封装、继承、多态
- Java面向对象三大特征:封装、继承、多态
- java面向对象的三大特征:封装-继承-多态
- Java面向对象三大特征:封装、继承、多态
- java面向对象的三大特征:封装,继承,多态
- 黑马程序员---java基础之面向对象(一)三大特征(封装,继承,多态)
- 设计模式学习(一):java 面向对象特征:抽象、封装、多态、继承
- 一起艳学正则表达式
- Ueditor开发实例
- 全志R16平台的androidM下调通AP6330(V2.1系统)(分色排版)
- 第四章——栈与队列
- Notepad++里面正则表达式反向引用和替换的一个例子
- Java基础学习总结(三)—— 面向对象特征(封装|继承|多态)
- 利用SpringAOP技术完成数据库连接事物实战
- 【leetcode】3.Longest Substring Without Repeating Characters
- lua and or not
- windows10+vs2010+opencv2.4.13opencv配置的方法
- 线段树
- Java开发中的23种设计模式详解(转)
- 浅析商业银行数据安全保护体系建设思路
- 基于AspectJ的XML方式进行AOP开发