学会抽象
学习心得:
今天的内容还算比较理解,新技能get。
学习内容: 一、抽象
1.抽象方法
- 加一个abstract
- 抽象方法必须在一个抽象类里
- 当我们定义一个抽象类,它可以有哪些结构:属性 成员方法 构造器 抽象方法 常量
- 抽象类里能不能没有抽象方法?可以没有抽象方法
2.抽象类
- 抽象类是不能实例化的
- 抽象类不能创建对象
- 抽象类的构造器存在的意义:为了约定子类的构造器必须和父类相匹配
- 一个类如果继承了一个抽象类,那必须重写这个类的所有方法
- abstract能修饰什么?类,方法
- 抽象方法能不能用private修饰:不能 基本都是用public
-
抽象类能不能用FINAL修饰,用final修饰的类不允许被继承
final修饰的方法不允许被重写
3.总结
- 抽象方法必须是public或者protecter 因为如果是private,不能被子类继承
- 抽象类不能被直接实例化,需要依靠子类向上转型的方式
- 抽象类必须有子类,使用extents,一个类只能继承一个抽象类
- 子类如果不是抽象类,那必须重写抽象类中的所有抽象方法(如果没有实现父类的抽象方法必须将子类定义为abstract)
二、接口
1.引入
比抽象类还要抽象
抽象类也是比类更高级的抽象
2.接口的声明
使用interface关键字:public interface Cho2
JDK1.7前:接口中只能定义抽象方法,不能有属性,不能有方法
JDK8之后,接口只能定义抽象方法,不能有属性,可以有默认方法和静态方法
JDK7-JDK8 默认方法,静态方法
(静态常量)
3.接口中结构特点
接口中的抽象方法默认方法public abstract推荐省略
接口中的常量默认public Static final 省略
接口中的结构必须是public
4.接口的实现
接口可以被实现 例如A类 inplements 接口 A就是接口的实现类
如果实现了一个接口,他就需要重写接口中所有的抽象方法
5.接口和继承的区别
可以实现多个接口,但是只能继承一个
注意:开发中,如果一件事情可以通过继承实现接口来解决问题,接口解决
6.面试题
继承抽象类和实现接口的异同? 继承只能单继承,接口可以多实现
抽象类和接口的区别?默认的方法实现 抽象类可以有默认的方法实现完全是抽象的。接口不存在方法的实现。抽象类中可以有已经实现了的方法,也可以有被abstract修饰的方法(抽象方法),因为存在抽象方法,所以该类必须是抽象类。接口要求只能包含抽象方法,抽象方法是指没有实现的方法。所以就不能像抽象类那么无赖了,接口就根本不能存在方法的实现
接口存在的意义?约定
在java中只有单继承?在java中存在多继承,发生在接口之间
三、栈和队列
两种操作受限的线性表
这种受限表现在
栈的输入和删除只能在表的尾端进行
队列只允许在表尾插入元素,在表头删除元素
栈和队列的相同点
1.都是线性结构
2.插入操作都是在表尾进行
3.它们都可以通过顺序结构和链式实现。
栈与队列的不同点
1.队列先进先出 栈先进后出



