2022 0726 顾宇佳 学习笔记

抽象(abstract)

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

抽象类的结构:属性,成员方法,构造器,抽象方法,常量

定义变量

1.抽象类可以没有抽象方法

2.抽象类可以没有抽象方法

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

4.抽象类的构造器存在的意义: 为了约定子类的构造器必须和父类要匹配

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

abstract能修饰类,方法。
1.抽象方法不能用private修饰,开发中,抽象方法基本上都是public
2.抽象方法不能用final修饰,用final修饰的方法是不允许重写。
3.抽象类不能用final修饰,用final修饰的类是不允许被继承的。

总结

 1、抽象方法必须是public或者protected(因为如果是private,不能被子类继承, 子类便无法实现该方法),默认情况下是可以的。(默认情况其实就是public)
 2、抽象类不能被直接实例化,需要依靠子类采用向上转型的方式处理
 3、抽象类必须有子类,使用extends继承,一个类只能继承一个抽象类。
 4、子类(如果不是抽象类)则必须重写抽象类中的所有抽象方法 ,(如果子类没有实现父类的抽象方法,必须将子类也定义为abstract)

接口 ( 比抽象类更高级的抽象。

声明:使用interface关键字,public interface Ch02
 JDK1.7之前:接口中只能定义抽象方法,不能有属性,不能有方法。
           (静态的常量)
 JDK8及以后:接口中只能定义抽象方法,不能有属性,可以有默认方法和静态方法
            静态常量。
 JDK7---JDK8:默认方法,静态方法。
图标发生的变化:
可定义的方法:

 接口中结构的特点:
 接口中的抽象方法默认是public abstract,我们推荐就省略了。

 接口中的常量默认是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. 都可以通过顺序结构和链式结构实现

栈与队列的不同点:

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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值