封装 继承和多态

java三大特性

  • 封装:encapsulation 隐藏信息
    • 实现专业的分工,工作中的分模块 分功能开发
    • 隐藏信息和实现细节,使得对代码的修改更加安全和容易
  • 继承 :inheritance 延续+扩展父类信息
    • 实现代码复用,延续+扩展父类信息
  • 多态:polymorphism 模糊测罗 以不变应万变
    • 以不变应万变

封装

  • 概念
    • 把对象的属性和行为结合为一个独立的整体,并尽可能隐藏对象的内部实现细节
  • 好处
    • 提高代码的复用性和安全性
  • 设计原则

    • 把不想外界知道的实现细节隐藏起来,向外提供公共的访问方法
  • javabean

    • 一个对象实例的封装类
    • 必须为public class
    • 必须有一个无参构造器
    • 所有的属性必须private修饰进行封装
    • 为属性提供公共的setter和gettet方法

    继承

  • 概念

    • 在一个现有类的基础上构建一个新的类,子类会自动拥有父类所有可继承的属性和方法
  • 继承的格式
    • class 子类 extends 父类
  • 好处
    • 提高代码复用性,提高开发效率
    • 类与类之间产生关系,提供了多态的前提
  • 注意事项
    • 单继承,一个类只能继承一个父类
    • 多个子类可以继承同一个父类
    • 可以多层继承
  • 父子类成员变量
    • 子类可以有和父类同名的属性,不会互相影响
    • 子类中可以直接访问父类非私有属性
    • 若子类中也有同名属性,可用super。属性名来访问父类属性
  • 父子类中的方法
    • 子类中可以有和父类同名的方法,不会互相影响
    • 子类有父类中可非私有的方法
    • 调用方法时,会先在子类中找;如果子类没有,会不断向父类找
    • 特殊情况:方法的重写
      • 方法重写特点:
      • 必须保证权限大于等于父类权限
      • 方法名称 参数列表以及返回值类型一致,权限可以兼容
  • 方法的重写
    • 在子类中可以根据需要对从父类继承来的方法进行重写
    • 具有相同的方法名称 参数列表和返回值类型
    • 属性不会重写
    • 静态方法不会重写
    • final修饰的类不能继承,修饰的方法不能重写
    • 私有方法不会重写
  • super关键字

    • 用来代表父类对象
    • 继承中的构造方法

      • 子类构造中必须调用父类的构造器
      • 子类可以在这的构造器中用super()调用父类的构造器;用this()代表子类其他构造器
      • super()必须写子类构造器的第一行
      • 子类构造器中无显示调用父类的构造器,jvm会默认调用父类构造器
      • 子类无显示调用父诶构造器,而父类又没有无参构造器会报错

        ## 对象转型 ##
        

        一个父类的引用类型变量可以指向子类的对象
        一个父类的引用不可以访问其子类对象的新增成员

多态

  • 概念
    • 父类引用变量可以指向子类对象,父类在调用方法时实际会调用子类重写的方法
    • 成员变量是父类的成员变量
    • 调用的方法是子类重写后的方法
    • 编译看左边,运行看右边
  • 多态的好处
    • 隐藏子类类型,提高代码的扩展性
  • 坏处

    • 只能使用父类已有的功能,无法开拓新功能
  • 多态的条件

    • 父子类
    • 父类引用指向子类对象
    • 方法重写
  • 静态绑定
    • 在编译器完成,可以提高代码的执行速度
    • 静态方法
    • 构造器
    • private方法
    • 用关键字super调用的方法
  • 动态绑定
    • 在运行期间,根据对象的实际类型调用相应的方法,降低了代码的执行速度
    • 相同的父类对象,调用相同的方法,参数也相同,但是实际运行的方法不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值