JavaSE之面向对象的特性

面向对象的特性
封装
概念
把对象的所有组成部分组合在一起
使用访问控制修饰符将数据隐藏
对事物/对象的属性进行包装
作用
适当的封装可以使代码更容易理解和维护,也加强了代码的安全性
package
决定当前文件的编译和运行
软件包机制
为了解决命名冲突问题
java中使用package语句
必须出现在java文件的第一行
通常采用公司域名倒叙
什么是文件名
能够找到这个文件的全路径
Import
静态引入,访问一个类的静态属性的时候,需要用类名调用
静态引入之后,可以直接使用这个属性/方法即可 m1() 不需要再加类名
import用于引入其他类到当前类中
import语句 必须在package语句之下.class语句之上
java.lang. : lang下所有的类,都是系统核心类,使用的时候 不需要引入
访问控制符
访问控制符用来控制父类、子类间,不同包中的类间数据和方法的访问权限
继承
概念
继承是从已有的类中派生出新的类,新的类能吸收已有类的属性和行为,并能扩展新的属性和行为。
Java继承特点
解决什么问题
为了类复用的一种语法结构0
语法格式
继承目的 : 代码重用
语法 class 子类名 extends 父类名 { }
java 中只支持单继承,并且是链式继承(爹不能再继承儿子)
java中的根类 : Object
如果一个类没有显示继承其他类,那么该类默认继承 java.lang.Object
Super
保存了父类型特征,可以理解为是父类的对象引用(错的)
注意
构造方法可以和静态方法/成员方法重名吗?
静态方法/成员方法的方法名可以和类名相同吗?
如何区分?
看返回值,构造方法 没有返回值,连void都没有
Override
继承之后 子类必须和父类一模一样吗?
1 子类有特有的属性,比如 父类只有m1 , 子类中 还有 m2 ,这个m2 就是子类特有,父类没有
2 子类和父类拥有相同名字的方法,但是功能不一样,叫覆写/重写/覆盖
覆写 特指成员方法,和其他属性无关
什么时候需要进行覆写?
前提条件
1 必须有继承关系的体系中
2 不能比原方法有更低的访问权限
3 错误不能越来越多,不能有更宽泛的异常
4 方法名,返回值,参数列表 都必须一致
继承的目的 : 代码重用
继承最重要的功能 : 方法覆写
重写的意义
功能越来越强
使用范围越来越广
错误越来越少
多态
多态相关知识
软件设计六大原则
里氏替换原则 : 能够使用父类的地方,一定可以使用子类
多态就是里氏替换原则的一种体现
多态前提条件 : 有继承关系
父类引用指向子类对象
引用 : 引用类型变量
指向 : 就是通过这个引用类型的变量保存的内存地址,可以找到谁
子类对象 : 就是使用子类创建的对象
哪里 有变量,哪里就能发生多态
多态的几种形式
1 局部变量/成员变量 : 声明的时候 使用父类声明,赋值的时候,使用子类对象
2 实参/形参 : 参数列表使用父类声明变量,方法调用时传入子类对象
3 返回值 : 返回值类型使用父类声明,return的时候 返回子类对象
多态发生在赋值的时候
多态缺点
丢失子类特有的属性
父类 变量名 = new 子类();
1 如果父类没有,不管子类有没有,不管什么属性,都访问不了,报错
2 如果父类有的成员方法,子类也有的成员方法,执行子类,因为覆写
3 如果父类有的成员方法,子类没有,执行父类
4 如果父类有的非成员方法,不管子类有没有,都执行父类
多态又叫向上转型
自动类型转换
1 基本类型 : 低精度到高精度
2 引用类型 : 子类到父类
instanceof
判断某个对象是否由某个类实例化而来,可以避免强制类型转换异常
抽象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值