Java | 详解面向对象(二)

1、继承

class 父类 {
}
 
class 子类 extends 父类 {
}
  • 概念

    • 继承通过extends关键字来实现,其中SubClass称为子类,SuperClass称为父类,基类,或超类
  • 作用

    • 代码重用,代码复用
  • 单继承

    • 一个类,只能继承一个父类
    • 一个类,可以有多个子类
  • 不继承

    • 构造方法不继承
    • 没有访问权限的成员不继承
    • 静态成员不继承

2、多态

多态指的是编译器(申明变量是)和运行期(创建对象后)表现为不同的形态(数据类型)

  • 三个条件

    • 继承的存在(继承是多态的基础,没有继承就没有多态)
    • 子类重写父类的方法(多态下调用子类重写的方法)
    • 父类引用变量指向子类对象(子类到父类的类型转换)
  • 子类转父类规则

    • 将一个父类的引用指向一个子类的对象,称为向上转型(upcastiog),自动进行类型转换.
    • 此时通过父类引用调用的方法是子类覆盖或继承父类的方法,不是父类的方法.
    • 此时通过父类引用变量无法调用子类特有的方法
    • 如果父类要调用子类的特有方法就得将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型,此时必须进行强制类型转换

3、封装

  • 访问控制符

    • private

      • 成员变量和方法只能在类内被访问,具有类可见性.
    • default

      • 成员变量和方法只能被同一个包里的类访问,具有包可见性
    • protected

      • 可以被同一个包中的类访问,被同一个项目中不同包中的子类访问
    • public

      • 可以被同一个项目中所有类访问,具有项目可见性,这是最大的访问权限
  • 好处

    • 隐藏类的实现细节
    • 让使用者只能通过程序员规定的方法来访问数据
    • 可以方便的加入存取控制语句,限制不合理操作
  • 具体步骤

    • 修改属性的可见性来限制对属性的访问
    • 为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取
    • 在赋值方法中,加入对属性的存取控制语句

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟华328

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值