面向对象的三大特性

面向对象的三大特性

封装 继承 多态

封装

  • 概念
    • 将一组逻辑相关的属性方法封装起来,通过访问权限修饰符来隐藏内部细节,公开访问的接口来访问。
  • 作用

    • 保证了模块具有较好的独立性
    • 使程序修改较为容易
    • 减少程序修改带来的影响
    • 降低外部使用的复杂度
  • 具体表现

    • 属性:一般用private修饰,隐藏属性,提供set方法和get方法得到属性和设置属性。
    • 方法:一般用public修饰,公开方法。
  • 总结
    • 在合适的地方用合适的访问权限修饰符修饰属性方法构造方法 。

继承

  • 构造器
    • 子类继承父类时,必须先构造父类。
    • 子类继承父类时, 会优先调用父类的默认无参的构造器。
    • 子类继承父类时,如父类没有默认无参的构造器或需调用其他构造器时,使用super关键字显式地调用其他构造器。
    • super调用父类构造器时,必须在子类构造器的第一行,否则编译不通过。
  • this 与 super关键字

    • 当父类与子类有同名的属性或方法时,用this与super区分
    • this.属性 当前实例的属性 super.属性 父类实例的属性
    • this.方法 当前实例的方法 super.方法 父类实例的方法
  • 方法覆写(覆盖)

    • 在继承关系中
    • 同名:方法名相同
    • 同参:参数相同
    • 同返回值
    • 子类方法的访问权限修饰符不小于父类的访问权限修饰符
  • protected关键字
    • 用protected修饰的属性、方法和构造方法,可以在同包和子类中被访问
  • final
    • final修饰属性时,一般与static同时使用,是常量必须赋初值,之后不可变。
    • final修饰方法时,子类不可覆盖该方法
    • final修饰类时,该类不可被继承
  • 抽象类

    • 用abstract修饰的类即为抽象类
    • 抽象类不可被实例化,一般作为子类的基类
    • 子类继承抽象类时必须实现抽象类的抽象方法
    • 含有抽象方法的类必须是抽象类,但抽象类不一定有抽象方法
      ps:抽象方法:用abstract修饰,不写方法体。public abstract void a();
  • 单继承与多继承

    • 类继承类:只支持单继承,只能有一个父类
    • 接口继承接口:可以继承多个接口

多态

  • 概念
    • 多态是具有表现多种形态的能力的特征,对外一种表示形式,对内多种表现形式。
  • 具体用法
    • 父类变量指向子类实例 Parent p = new Child();
    • 接口变量指向实现类实例Interface i = new Implements();
  • 属性和方法的调用
    • 方法覆盖:运行期调用的子类的方法
    • 静态方法:运行期调用的父类的方法
    • 属性:运行期调用的是父类的属性
  • 运行期类型和编译期类型
    • 编译期类型是引用变量的类型
    • 运行期类型是实例类型
      `` Parent p = new Child();
      Child是运行期类型
      Parent是编译期类型
  • 多态参数
    • 把接口或者父类作为参数时 ,可以传入子类或者实现类。
  • 作用
    • 扩展性强
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值