ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

20220726—第八组—王凌霄—学习笔记

2022-07-26 21:36:32  阅读:153  来源: 互联网

标签:王凌霄 继承 20220726 接口 抽象 笔记 子类 抽象类 方法


面向对象特征——抽象类

抽象的概念

用抽象修饰的方法叫抽象方法——没有方法体(没有大括号)

抽象方法存在的意义是什么?

存在的意义是为了约定。根本意义,约定,自定义的规则

抽象方法到底约定了什么?(规定了什么?定了哪些规则?)

约定了返回值、访问权限、参数列表。需要在重写的时候去定义方法体。

注意:约定大于配置,配置大于编码。

抽象方法必须在一个抽象类里。

注意:

1.当我们定义一个抽象类,这个抽象类中可以有哪些结构?

  属性、成员方法、构造器、抽象方法、常量

  定义常量

  

2.抽象类中能不能没有抽象方法?

  抽象类可以没有抽象方法

3.抽象类是不能被实例化的(抽象类不能创建对象)

4.抽象类的构造器存在的意义  

  为了约定子类的构造器必须和父类要匹配

5.一个类如果继承了一个抽象类,就必须重写这个抽象类所有的抽象方法abstract能修饰什么?

  类和方法。

抽象方法不能用private修饰,可以用public protected 默认的修饰

开发中,抽象方法基本上都是public

抽象方法不能用final修饰。用final修饰的方法是不允许重写、不能被覆盖的

抽象类不能用final修饰。用final修饰的类是不允许被继承的

总结:

1.抽象方法必须是public或protected或默认的(default)(因为如果是private是不能被子类继承的,子类便无法实现该方法)

2.抽象类不能被直接实例化,需要依靠子类采用向上转型的方法处理

3.抽象类必须有子类,使用extends继承

4.子类(前提:如果不是抽象类)则必须重写抽象类中的所有抽象方法(如果子类没有实现弗雷德抽象方法,必须将子类也定义为abstract)

抛出异常:(如下图)

接口

比抽象类更高级的抽象。

接口是一系列方法的声明,是一些方法特征的集合。

一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

接口的声明:使用Interface关键字

图标发生变化(如下图)

可以定义的方法(如下图)

接口中结构的特点:

1.接口中的抽象方法默认是public abstract(推荐省略)

2.接口中的常量默认是public static final(推荐省略)

注意:接口中的结构必须是public

比如A类 implements 接口,那我们就说A是这个接口的实现类

如果一个类实现了一个接口,那它就需要重写接口中所有的抽象方法(如下图)

注意:实现接口是可以多实现的,但是继承只能单继承(接口的多实现如下图)

用逗号隔开

在开发中,如果一件事情可以通过继承和实现接口来解决问题,优先选择使用接口解决

面试题:

1.继承抽象类和实现接口的异同。

  必须重写所有抽象方法

  继承抽象类是单继承,实现接口是多实现

2.抽象类和接口的区别。

  抽象类能放属性、普通成员方法、构造器等

  接口能放属性、成员方法、静态方法和默认方法

3.在Java中只有单继承?

  不对,有多继承。在Java中存在多继承,多继承发生在接口之间

  Java类与类之间只有单继承。

匿名实现类

其中红框圈起来的代表代理类。

数据结构

栈和队列:

栈和队列是两种操作受限的线性表

这种受限表现在:

栈的插入和删除只允许在表的尾端进行(在栈中叫做“栈顶”),满足FILO

  First  In  Last  Out

队列只允许在表尾插入元素,在表头删除元素:FIFO

  First  In  First  Out

栈与队列的相同点

1.都是线性结构

2.插入操作都是在表尾进行

3.都可以通过顺序结构和链式结构实现

栈与队列的不同点

队列是先进先出;栈是先进后出

 

标签:王凌霄,继承,20220726,接口,抽象,笔记,子类,抽象类,方法
来源: https://www.cnblogs.com/wlx7/p/16522692.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有