初见JAVA-面向对象-封装继承多态-初级进化09

初见JAVA-面向对象-封装继承多态-初级进化09

封装

作用

  1. 提高程序安全性,保护数据
  2. 隐藏代码的实现细节
  3. 统一接口
  4. 提高系统可维护性

怎么做

属性私有,get/set

继承

  • 本质:对一批类的抽象,从而实现对现实世界更好的建模
  • 用extends关键字,子类是父类的扩展
  • java只有单继承,没有多继承,一个儿子只有一个爸爸
  • 子类和父类的关系是子类is a 父类

this和super

  1. super调用父类的构造方法,必须在构造方法的第一个
  2. super必须只能出现在子类的方法或者构造方法中
  3. super和this不能同时调用构造方法
  4. this:代表本身调用者这个对象;super:代表父类对象的引用
  5. this:没有继承也可以使用;super:只能在继承条件才可以shying
  6. this():本类的构造;super():父类的构造

方法的重写

重写都是方法的重写,和属性无关

父类的引用指向了子类

静态方法:方法调用只和左边,定义的数据类型有关

修饰符:范围可以扩大但不能缩小

抛出的异常,范围可以被缩小,但不能扩大

为什么要重写:父类的功能,子类不一定需要或者不一定满足

修饰符

public

protected

private

default

多态

动态变异:类型:可扩展

对象的实际类型是确定的,但指向对象的引用的类型有很多

注意事项

多态是方法的多态,属性没有多态

父类和子类,有联系,类型转换异常 ClassCastException

存在条件:继承关系,方法需要重写,父类引用指向子类对象

不支持多态:

staitic方法,属于类,不属于实例

final 常量

private方法

instanceof

A instanceof B:A是否属于B

强制转换

(强制转换成的类型)被转换的对象

子类对象可以声明为父类类型,父类对象不可以声明为子类类型

在子类对象声明为父类类型后,可以通过强制转型,转型回来。

因为在子类对象声明为父类类型后,其实对象的真实意义还是子类对象

static

静态变量:
再多线程时用,可以直接用类名用,不需要实例
静态方法:
可以直接用类名访问,不需要实例
静态代码块:
static{}
导入静态包

猜你喜欢

转载自blog.csdn.net/rr18758236029/article/details/108432492