学Java的第7天


封装

  • 该露的露,该藏的藏
    • 程序设计追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合指仅暴露少量的方法给外部使用。
  • 封装(数据的隐藏)
    • 通常应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。

属性私有,方法公开:private、public、get/set

继承

Java中只有单继承没有多继承.
继承关系的俩个类,一个为子类(派生类).一个为父类(基类)。子类继承父类,使用关键字extends来表示。
子类继承父类的属性和方法,但是不能直接访问父类的私有属性。
Object类是所有类的父类。

super

super();调用父类的构造方法,必须在子类的构造方法的第一个,不写也会隐式添加。
super()和this()不能同时出现在子类的构造方法中。

方法的重写

这些方法不能被重写:

  1. static方法。属于类,它不属于实例
  2. final常量
  3. private方法

方法的重写只跟方法有关,跟属性无关。
假设B类继承自A类,print是静态方法:
A a = new A();
B b = new A();
a.print();//调用A类的方法
b.print();//调用B类的方法
说明静态方法的调用只和左边的类有关。
非静态方法,使用override重写,调用的是右边对象的方法。

重写需要有继承关系。子类重写父类的方法。

  1. 方法名必须相同
  2. 参数列表列表必须相同
  3. 修饰符范围可以扩大但不能缩小public>protected>Default>private
  4. 抛出的异常范围,可以被缩小,但不能扩大:

多态

即同一方法可以根据发送对象的不同而采用多种不同的行为方式。
一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。
多态存在的条件:

  • 有继承关系
  • 子类重写父类方法
  • 父类引用指向子类对象

注意:多态是方法的多态,属性没有多态性。

instanceof和类型转换

instanceof判断两个类是否有上下级继承关系,返回布尔类型。
类型转换:

  1. 父类引用指向子类对象
  2. 把子类转换为父类。向上转型,可能会丢失方法
  3. 把父类转换为子类。向下转型:强制转换

文章作者: 泷少
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 泷少 !
评论
  目录