回顾:
1.多态
有继承关系:父类和子类的关系
有重写
父类引用指向子类
2.抽象
子类要重写父类的方法,说明父类方法没有用,则不需要写,可以写成抽象方法
子类必须重写父类的抽象方法
接口和lambda表达式
1.接口默认的修饰符是什么? public abstract
2.一般情况下,如果抽象类里面都是抽象方法,那么将抽象类改为接口
3.接口是抽象类的一种表现形式,是属于特殊的抽象类
4.接口里面可以有变量:为常量:public static final String NAME = null;
5.一般情况下,固定的变量,不允许出现在普通类里面,出现在这里叫做魔法值
6.一般类里面不允许出现魔法值:那么这些变量应该放到哪个地方?
7.如果里面都是常量,则将常量放大枚举,枚举就是一一列举
8.一般抽象类如果全是常量,则用枚举,如果全是抽象方法,则用接口
9.枚举得到值,定义一个变量,设置set/get方法,创建构造方法
10.以后尽量不使用或者禁止使用枚举
11.普通类需要实现接口里面的所有抽象方法
12.以后,大多数场景下,接口里面一般只有一个抽象方法
13.如果抽象类里面有普通变量,设置了全参的构造方法,那么子类也需要定义全参构造方法
---------------------------------------------------------------------
14.接口目的:就是对行为的抽象,是一个特殊的抽象类
15.抽象类可以理解为由三大部分组成:普通类,枚举,接口
16.内部类:在一个类里面创建另一个类
17.内部类可以直接使用外部类的成员和方法,内部类可以理解为和外部类成员级别一致
18.外部类访问内部类需要创建对象
19.无论内部类和代码块都是需要取执行代码,只不过内部类可以进行调用
20.内部类的主要目的:就是为了创建属于自己的对象,为了不让别人直接调用,他是属于自己的外部类
21.内部类可以理解为,外部类的一部分,是一个组合的关系,一般情况下是不可分割的;
22.类和类之间的关系?
1:继承/实现 子类和父类的关系
2:依赖 将类作为参数进行传递 class Dog{ run(Animal animal);}
3:组合 可以理解为很多个类,是另外一个类的组成部分:不可分割的,也可以理解为私有的内部类
4:聚合 可以理解为很多个类,只不过是可以分割的;
-------------------------------------------------------------
lambda表达式
23.如果要对接口或者抽象类进行实例化,则会创建一个类,这个内叫做匿名局部内部类
24.像这种类,一般可以简写:lambda表达式:()->执行体
25.什么情况下不用写大括号?if,else,for等如果后面只有一行代码,则可以省略大括号
26.如果参数只有一个,则可以省略小括号
27.如果参数只有一个,则可以省略数据类型,如果由多个,要么都省了数据类型,要么都写上
28.lambda表达式:接口,而且只能有一个抽象方法
29.lambda表达式一般在JKD自带的代码里面有,以后自己封装的时候可以写lambda表达式