首页 > 其他分享 >10.面向对象(2)

10.面向对象(2)

时间:2024-09-05 19:50:06浏览次数:7  
标签:10 调用 重写 子类 成员 面向对象 父类 方法

MODULE 10 面向对象

  1. 知道继承的好处
  2. 会使用继承
  3. 知道继承之后成员变量以及成员方法的访问特点
  4. 会方法的重写,以及知道方法重写的使用场景
  5. 会使用this关键字调用当前对象中的成员
  6. 会使用super关键字调用父类中的成员
  7. 会定义抽象方法以及抽象类
  8. 会重写抽象方法

一.继承

(一)什么是继承

1.我们定义了多个类,发现这些类中有很多重复性的代码,我们就定义了一个父类, 将相同的代码抽取出来放到父类中,其他的类直接继承这个父类,就可以直接使用 父类中的内容

2.怎么去继承:extends

子类 extends 父类

3.注意:

(1)子类可以继承父类中私有和非私有成员

(2)构造方法不能继承

4.继承怎么学:

(1)继承不要从是否”拥有”方面来学

要从是否能”使用”方面来学

(二)继承如何使用

1.定义一个父类,在其中定义重复性的代码

2.定义一个子类继承父类 -> extends

子类 extends 父类

3.创建子类对象,直接使用父类中非私有成员

(三)继承中成员的访问特点

1.成员变量

(1)子类和父类中的成员变量不重名

总结:子类可以调用自己的成员变量和父类非私有的成员变量;父类只能 调用父类中的成员变量

(2)子类和父类中的成员变量重名

总结:继承条件下,不管成员变量是否重名,看等号左边是谁,就先调用谁 中的成员,子类没有,找父类(适用于多态)

2.成员方法

(1)方法不重名

(2)方法重名

总结:看new的是谁,先调用谁中的方法,子类没有,找父类(适用于多态)

(四)方法的重写

1.概述:子类中有一个和父类方法名以及参数列表相同的方法

2.前提:继承

3.访问:看new的是谁,先调用谁中的,如果new的是子类,调用子类的重写方法,子 类没有,找父亲

4.检查是否为重写方法:在该方法上写@Override

5.注意事项:

(1)子类重写父类方法之后,权限必须要保证大于等于父类权限(指的是访问权 限)public -> protected -> 默认 -> private

(2)子类方法重写父类方法,方法名和参数列表要一样

(3)私有方法不能被重写,构造方法不能被重写,静态方法不能被重写

(4)子类重写父类方法之后,返回值类型应该是父类方法返回值类型的子类类 型

6.使用场景

(1)功能升级改造,子类需要对父类中已经实现好的功能进行重新改造

二.super和this关键字

(一)继承中构造方法的特点

1.注意:new子类对象时,会先初始化父类(先走父类无参构造方法)

2.原因:每个构造方法的第一行,默认都会有一个super(),不写也会自动提 供,super()代表的是父类无参构造,手动添加必须写在第一行

(二)super和this的具体使用

1.super

(1)概述:代表的是父类引用

(2)作用:可以调用父类中的成员

(3)使用:

A.调用父类构造方法 -> 在子类中的构造中写

super() -> 调用父类无参构造

super(实参) -> 调用父类有参构造

B.调用父类成员变量

super.成员变量名

C.调用父类成员方法

super.成员方法名(实参)

2.this

(1)概述:代表的是当前对象(哪个对象调用的this所在的方法,this就代表哪 个对象)

(2)作用:

A.区分重名的成员变量和局部变量

B.调用当前对象中的成员

(3)使用:

A.调用当前对象的构造:在构造中写

this():调用当前对象的无参构造

this(实参):调用当前对象的有参构造

B.调用当前对象的成员变量

this.成员变量名

C.调用当前对象的成员方法

this.成员方法名(实参)

(4)注意:

Super和this,只要在构造中写,都必须在第一行,所以二者不能同时手写 出来

(三)继承的特点

1.继承只能支持单继承,不能多继承

2.继承支持多层继承

3.一个父类可以有多个子类

4.构造方法不能继承不能重写

5.私有方法可以继承,不能被重写

6.静态方法可以继承,不能被重写

(四)调用被private修饰的成员变量

三.抽象

(一)抽象的介绍

1.抽象怎么来的

抽象共性方法,放到父类中,发现方法没法实现,因为每个子类对此方法的实现 方式细节不一样,此时方法体说不清道不明,可以定义成抽象方法

2.关键字:abstract

3.抽象方法:

修饰符 abstract 返回值类型 方法名(参数);

4.抽象类:

public abstract class 类名{}

5.注意:

(1)抽象方法所在的类一定是抽象类

(2)抽象类中不一定有抽象方法

(3)子类继承父类之后,需要重写父类中所有的抽象方法,不然编译错误

(4)抽象类不能new对象,只能通过new子类对象调动重写方法

6.抽象类可以看成是一类事物的标准,要求只要是属于这一类的,都必须要拥有抽 象类中的方法,必须要给我实现,怎么证明拥有了? -> 重写

至于这个方法怎么实现,就看子类重写之后怎么写方法体了

(二)抽象注意事项

1.抽象类不能直接new对象,只能创建非抽象子类的对象

2.抽象类中不一定非得有抽象方法,但是抽象方法所在的类一定是抽象类

3.抽象类的子类,必须重写父类中的所有抽象方法,除非该子类也是抽象类

4.抽象类中可以有成员变量,构造,成员方法

5.抽象类中可以有构造方法,是供子类创建对象时,初始化父类属性使用的

标签:10,调用,重写,子类,成员,面向对象,父类,方法
From: https://www.cnblogs.com/swh666/p/18395552

相关文章

  • 11.面向对象(3)
    MODULE11 面向对象会定义接口会在接口中定义抽象方法,默认方法,静态方法,成员变量会调用接口中的成员会利用多态的方式new对象知道多态的前提要知道使用多态的好处会在多态的前提下,向下转型会利用instanceof判断类型一.接口(一)接口的介绍1.接口:是一个引用数据类型,是一个标......
  • 7.面向对象
    MODULE7 面向对象1.知道为啥使用面向对象思想编程2.知道怎么使用面向对象思想编程3.知道什么时候使用面向对象思想编程4.会利用代码去描述世间万物的分类5.会在一个类中访问另一个类中的成员->new对象6.成员变量和局部变量的区别一、类和对象(一)面向对象的介绍1.面向过程:自己......
  • 9.面向对象(1)
    MODULE9 面向对象1.会定义静态成员以及会调用静态成员2.会使用可变参数(会给可变参数传参)3.会二分查找(手撕)4.会冒泡排序(手撕)5.会debug的使用一、static关键字(一)static的介绍以及基本使用1.概述:static是一个静态关键字2.使用:(1)修饰一个成员变量:static数据类型变量名(2)修饰一个方......
  • 光影精灵10 Win1+Ubuntu18.04 双系统 踩坑记录
    前言第二年准备报名智能车了,当然还是创意组别。刚好买了今年新出的电脑光影精灵10,我想着也给它安一个双系统。但是没想到,相比于之前那个老电脑,新电脑的新硬件和驱动问题远比老电脑麻烦的多。在经历了一系列踩坑和疯狂查资料之后,加上重装系统N次,终于成功下车。遂把过程记录下来,以......
  • 1000多天我开发了一个免费的跨浏览器的书签同步、阅读排版、任意网页标注插件
    自我介绍大家好,我是阿浩,一位后端开发工程师,同时也略懂前端技术。业余时间,我开发了这款小工具——《藏趣云》。我为什么要写这么个工具需求来源于我自己,因为我是做开发的。我日常都会使用多款浏览器来测试项目,一次需要登录多个账号,寻找各种测试地址链接。之前因为电脑磁盘损坏、......
  • 分享4款安全与认证IC:DS28E30P、MAXQ1065GTC、RNG90-MAVDA-T、RNG90-SSVDA-T(介绍)
    1、DS28E30P安全认证器提供了一种基于FIPS-186ECDSA标准的完整认证解决方案,不仅高度安全,而且易于部署。该安全认证器采用ECDSA挑战和响应认证方式,同时利用安全EEPROM来存储密钥和用户数据。该器件提供了一套核心加密工具,这些加密工具由多种集成块衍生而来,包括一个非对称硬件引擎、......
  • 2024.08.10美团
    1.小美的密码小美准备登录美团,需要输入密码,小美忘记了密码,只记得密码可能是n个字符串中的一个。小美会按照密码的长度从小到大依次尝试每个字符串,对于相同长度的字符串,小美随机尝试,并且相同的密码只会尝试一次。小美想知道,她最少需要尝试多少次才能登录成功,最多需要尝试多少......
  • 【32项目】基于stm32f103c8t6的智能拐杖(文章末尾含完整代码)
    一.设计背景当我们带着家中的老人出去游玩时,难免会遇到有时老人走丢的情况,加上一般他们没有随时携带手机的习惯,很难找到他们,于是我们设计了一款智能的拐杖,通过通过GPS、电子罗盘等模块,来获取经纬度和磁北的夹角,然后通过对方的经纬度计算距离和角度,指向对方的位置,显示为对方的......
  • 解决Windows 10系统更新后谷歌浏览器的兼容性问题
    随着Windows10系统更新的推出,用户可能会遇到谷歌浏览器(Chrome)与更新不兼容的问题,如网页显示错误、扩展程序故障或性能下降等。本教程旨在提供一系列解决方案,帮助用户克服这些问题,确保浏览器平稳运行。(本文由https://chrome.cmrrs.com/站点的作者进行编写,转载时请进行标注。)......
  • 《DNK210使用指南 -CanMV版 V1.0》第二十二章 六轴传感器——原始数据读取实验
    第二十二章六轴传感器——原始数据读取实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-......