1、static关键字
匿名代码块、静态代码块、构造方法
静态代码块是在类加载的时候执行,仅执行一次
匿名代码块在调用构造函数之前
验证如下图:
2、静态导入包(可能很多人听都没听过)
3、Math是用final关键字的,final是常量的修饰符;通过final修饰的类就不能被继承了,没有子类
inherit就是继承的意思
2、抽象类与接口--难点是锻炼抽象的思维
抽象类:
抽象类只能单继承,但接口可以多继承
抽象类:由于单继承的局限性------设计模式可能用的到(abstract)
特点:
1、抽象类只是一种约束,不能new这个抽象类,只能靠子类去实现他
2、抽象类中可以有普通方法,抽象方法必须在抽象类中
思考:(后续待补充)
抽象类不能new对象,有构造器么?
抽象类存在的意义是什么?
接口(interface):接口的本质是契约。把接口理解成插座,不约束插什么电器,但插头得符合要求。
“如果你是xxxx,则必须能xxxxx”:如果你是天使,则必须能飞;如果你是汽车,则必须能跑
约束和实现抽离;只有规范,是非常专业的约束,自己无法写方法;面向接口编程
面向对象的精髓:是对对象的抽象,最能体现这一点的就是接口。
接口中的所有方法定义都是public abstract ,下图就是证明这一点:abstract是redundant(冗余的),为啥是public呢,因为是约束,如果不是public就不起作用了
直接写:返回值类型 + 方法名字 即可
接口中的所有属性都是public static final(不过没有多少人在接口里定义常量)
接口都需要有实现类一般都以 Impl 结尾(字母是:impL,方便看)
类 实现接口 implements接口,实现了接口的类,就必须重写接口中的方法
IDEA快捷键:alt + insert
接口类 extends 单继承,可利用接口实现伪多继承
接口不能被实例化,接口中没有构造方法
3、内部类
(学到多线程lambda表达式,就会明白,这一部分暂时了解即可)
成员内部类:
静态内部类
一个Java类中(.java)可以有多个class,但只能有一个public class
局部内部类:
匿名内部类: