2022-07-26 第三小组 孙翰章 学习笔记

JAVA10


1.面向对象特征:抽象

        Java中,除了类还有抽象类和接口

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

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

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

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

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

(1)抽象方法必须在一个抽象类里

#注意:

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

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

        b:定义常量抽象类中能不能没有抽象方法?

                抽象类可以没有抽象方法

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

        d:抽象类的构造器存在的意义

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

        e:一个类如果继承了一个抽象类,就必须重写这个抽象类所有的抽象方法

(2)abstract能修饰什么?

        类和方法。

        a:抽象方法不能用private修饰,可以用public protected 默认的修饰开发中,抽象方法基本上都是public。

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

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

(3)总结:

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

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

        c:抽象类必须有子类,使用extends继承。

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

#抛出异常:


2.接口

        比抽象类更高级的抽象

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

        JDK7之前接口中只能定义抽象方法,不能有属性,不能有方法(也可以放静态常量和静态方法)。

        JDK8及以后:接口中只能定义抽象方法,不能有属性,可以有默认方法和静态方法、静态常量。

(1)图标发生变化

(2)可以定义的方法

(3)接口中结构的特点:

        a:接口中的抽象方法默认是public abstract,我们推荐省略

        b:接口中的常量默认是public static final,我们推荐省略

        c:接口中的结构必须是public

                接口可以被一个类实现,这个类叫实现类。比如A类 implements 接口,那我们就说A是这个接口的实现类。如果一个类实现了一个接口,那它就需要重写接口中所有的抽象方法

                实现接口是可以多实现的,但是继承只能单继承

 

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


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

(1)必须重写所有抽象方法

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

 #抽象类和接口的区别。

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

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

#多态的前提条件

(1)继承,实现

(2)重写方法

(3)父类指向子类,接口指向实现类

#在Java中只有单继承?

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

        Java类与类之间只有单继承

#匿名实现类


3.数据结构

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

(1)这种受限表现在:

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

        First  In  Last  Out

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

        First  In  First  Out

(2)栈与队列的相同点:

        都是线性结构

        插入操作都是在表尾进行

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

(3)栈与队列的不同点:

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


栈和队列的使用还需要熟练,所学知识能够理解

伤还没好,没法晨练,心情良好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值