面向对象进阶一(static,继承,多态)

一、static

被static修饰的成员变量是静态变量,被static修饰的方法是静态方法。被static修饰的变量被该类所有对象所共享。
在这里插入图片描述

工具类的三个要点

  • 类名见名知意
  • 私有化构造方法
  • 方法定义为静态

在这里插入图片描述
在这里插入图片描述

二、继承

2.1 继承的定义和特点

继承就是从一个类扩展出另一个类。
在这里插入图片描述
在这里插入图片描述
特点:

  • 只支持单继承
  • 不支持多继承
  • 支持单层继承(直接父类、间接父类)
  • 每一个类都直接或间接地继承自Object
  • 子类只能访问父类中的非私有成员

2.2 继承内容、成员变量和成员方法的访问特点

2.2.1继承内容

  • 构造方法:非私有——不能,private修饰——不能;
  • 成员变量:非私有——能, private修饰——能;
  • 成员方法:虚方法表中的——能,否则——不能。

虚方法表中的即:不被private修饰、不被static修饰、不被final修饰。

2.2.2 成员变量的访问特点

在这里插入图片描述

2.2.3 成员方法的访问方法、方法的重写

  • 直接调用满足就近原则:谁离我近,我就用谁;
  • super调用,直接访问父类;

当父类的方法不能满足子类现在的需求时,需要进行方法重写
就是对当前子类的方法覆盖父类继承下来的方法。
在这里插入图片描述

方法重写注意事项和要求:

  • 重写方法的名称、形参列表必须与父类中的一致。
  • 子类重写父类方法时,访问权限子类必须大于等于父类(暂时了解︰空着不写<protected <public)
  • 子类重写父类方法时,返回值类型子类必须小于等于父类。
  • 建议:重写的方法尽量和父类保持一致。
  • 只有被添加到虚方法表中的方法才能被重写。

2.3 继承中构造方法的访问特点

  • 子类不能继承父类的构造方法,但是可以通过super调用。
  • 子类构造方法的第一行,有一个默认的super()。
  • 默认先访问父类中无参的构造方法,再执行自己。
  • 如果想要方法文父类有参构造,必须手动书写。
    在这里插入图片描述

三、this、super使用总结

在这里插入图片描述

四、多态

4.1 多态的基本概念

多态:同类型的对象,可以有不同的形态。

形式为父类类型 对象名 = 子类对象

多态的前提:

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

多态的好处:使用父类作为参数,则可接收所有子类的对象。

4.2 多态调用成员的特点

调用成员变量:编译看左边,运行看左边

编译看左边: javac编译代码的时候,会看左边的父类中有没有这个变量,如果有,编译成功,如果没有编译失败。
运行看左边: java运行代码的时候,实际获取的就是左边父类中成员变量的值

调用成员方法:编译看左边,运行看右边

编译看左边:javac编译代码的时候,会看左边的父类中有没有这个方法,如果有,编译成功,如果没有编译失败。
运行看右边: java运行代码的时候,实际上运行的是子类中的方法。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要努力的小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值