封装、继承、多态

继承

定义:继承 extends

特点:

  • 无论是否调用父类构造方法 创建子类对象时 都一定会创建父类对象 (默认调用父类的无参构造)(注意是否存在父类无参构造)
  • 只能在子类构造方法中 通过super(参数列表)** 去匹配调用父类构造方法 必须是第一句话 因此不能同时调用本类其他构造方法的重载
  • 在子类中可以通过super关键字 表示将来父类的对象 可以通过super。找出所有非私有属性和方法 但是在父类中不能调用子类资源
  • 子类中的super可以替换为this 意味着先查找子类 在查找父类 一直到Object都没找到则报错 但是this不能随意替换成super 会省略本类查找直接去父类查找
  • Java是单继承语言 一个类可以有多个子类 但是只能有一个父类
  • 子类对象调用方法是 先判断是否存在该对象方法 存在则执行 不存在继续向上查找 找到则执行 一直到Object都没找到则报错
重写

​ 存在于继承关系中 子类重新编写父类方法的方法体 称为方法的重写

​ 1.子父类中2.方法名相同3.参数列表相同

​ 返回值:要求子类重写方法返回值类型 等于父类该方法的返回值类型 或者是父类该方法返回值类型的子类类型

​ 可以在方法上添加@Override 验证是否是方法的重写

重载

​ 1.同一个类中 2.方法名相同3.参数列表不同

abstract 抽象的

​ 修饰类:所修饰的类 变为抽象类 可以存放抽象方法 此类不能再被new成对象 一般一定需要有子类(实现类)

​ 修饰方法:该方法变为抽象方法 没有方法体 侧重于设计 约束所有的子类必须重写该方法 只能存放在抽象类中

final 最终的

​ 修饰类:变为不能有子类的类

​ 修饰属性:变为常量 值不可在修改

​ 基本数据类型 引用数据类型 都不可再改变值

访问修饰符

​ public 项目中都能访问

​ protected 同一个包下的两个类 可以互相访问

​ 不同包中的两个类 不能访问 不同包中的子父类 子类可以通过super. 访问父类资源

​ 什么都不写 不能跨包

​ private 不能跨类

多态

​ 定义:父类的引用 指向子类的对象 表现出子类形态的能力

​ 条件:1.父类的引用指向子类对象 2.子类重写父类方法

​ 使用父类的引用 调用子类方法的逻辑:

​ 1.先判断父类中是否有该方法 如果没有 直接报错

​ 2.如果父类存在该方法 并不会直接执行 而是判断父类引用所指向的对象类型中是否重写了这个方法

​ 3.如果重写了 则执行重写后的方法 如果没有重写 则执行父类的原始方法

​ 经验:

​ 如果父类的引用去调用父类已有的方法 无需判断引用指向的子类对象类型 直接调用即可

​ 如果父类的引用调用子类特有资源 无法直接调用 必须将对象转为子类引用 调用子类特有资源

​ instanceof 关键字 用于判断父类引用指向的是哪个子类类型

多态用于方法参数
多态用于方法的返回值

封装

​ 定义:打包

​ 抽象出一个类 编写一个方法 创建一个数组

​ 标准实体类需要对于属性进行封装操作 提升属性的安全性 可控性

​ 1.属性私有化 属性既不能看也不能改

​ 2.给私有化后的属性 提供get【用于查看属性】和set【用于修改】方法

标准java实体类 javabean

规范:

​ 1.属性私有化

​ 2.提供无参构造

​ 3.提供带参构造

​ 4.封装属性(get set方法) 方法中 不建议编写逻辑代码

​ 5.toString()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值