6.封装、继承、多态

第六章【封装、继承、多态】

一、封装

  • 属性的封装

  • 方法的封装

封装的优点:

  1. 提高代码的安全性,重要信息可以私有化,不对外暴露

  2. 提高代码的复用性,常用的代码或者功能封装到方法中,可以在其他地方反复调用

  3. 封装代码的实现细节,便于修改内部代码,提高可维护性

  4. 简化外部的调用,便于调用者使用

二、方法重载

​ 必须在同一个类中,方法名相同,参数列表不同(参数个数不同、数据类型不同、参数顺序不同)

三、创建和初始化对象

new Student();

四、构造器

1、特征:

  • 必须和类的名字保持一致
  • 必须没有返回类型(不能写void)

2、作用:

  • 使用new关键字来创建对象的时候,后面跟的必须是类中存在的构造器
  • 构造器中的代码,在对象创建后会被调用,从而可以完成对象的初始化工作

3、无参构造器:

​ jvm在类中没有定义时会默认构造

​ 【注意】有构造器时,一定要构建无参构造器(Spring框架用)

4、构造器的重载

5、构造器之间的调用(使用this关键字)

五、继承

extends继承--->扩展

1、java中,没有继承任何类时,会默认继承Object类

2、子类继承父类,继承了父类中的属性和方法,并可以在子类中访问这些属性和方法

3、java中,类和类之间的继承是单继承

构造器不能被继承,private修饰的属性和方法不能被继承。

static修饰的方法可以被继承,但不能被重写。

一旦发生继承,jvm必须去调用父类的构造器,然后执行子类的构造器。

4、子类继承父类,创建子类对象的时候,会先默认调用父类的构造器

image-20210119190647554

绿色圆点表示public修饰方法,

黄色菱形表示protected修饰的方法,

红色方块表示private修饰的方法。

六、super关键字

1.作用:都是为了获取从父类中继承的内容

2.如果子类中声明和父类【同名的属性】,那么子类默认访问的是自己的属性,要想访问父类的属性添加super

3.如果子类中声明和父类【同名的方法】,那么子类默认访问的是自己的方法,要想访问父类的属性添加super.父类的方法

4.子类声明一个构造器的时候,如果构造器中没有使用this(..)调用自己的构造器,那么会默认使用super调用父类的无参构造器,

如果父类没有无参构造器,则需要使用super调用父类的构造器

5.super调用父类的构造器:

​ 必须在子类的构造器中

​ 必须放在构造器的第一行

七、方法重写

1、规定:

  • 方法名、参数列表相同
  • 访问控制修饰符可以被扩大,但不能缩小
  • 方法抛出异常类型的范围可以缩小,但不能扩大
  • 返回类型可以相同,也可以不同(基本数据类型相同,引用数据类型不同)
  1. 前提:必须是子类继承父类,子类能继承父类的属性和方法,重新定义了属性和方法。

  2. 子类重写成功,默认调用的都是子类重写后的方法;如果想在子类中调用父类的方法,则用super

  3. 子类的方法和父类的方法可以不同,需要遵循:两小+一大

​ 一大:子类定义的方法的修饰符可以比父类定义的相同或比他大(public > protected > private)

​ 两小:子类的返回类型可以和父类方法声明的返回类型相同,或是父类声明的返回类型的子类型

​ 子类抛出的异常必须和父类异常相同,或是父类抛出异常的子异常(Exception > ArrayIndexOutOfBoundsException)

八、多态

多态:建立在继承并且重写的状况下,其实是一种运行时多态

父类的引用指向子类的对象,调用子类重写父类的方法,呈现不同的效果。

1.子父类之间

2.子类继承父类的属性和方法

3.子类重写父类的属性和方法

4.父类的引用指向子类的对象

5.调用相同的方法,呈现不同的效果

九、instanceof

  1. 多态判断类型
  2. 引用数据类型

十、引用数据类型转换

前提:转换者与被转换者之间存在继承关系

​ 隐式转换:(子类)较小的--->(父类)较大的

​ 显式转换:父类类型接收的一个子类对象-->子类对象

posted @   可乐爱兑姜汁  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示