关于java抽象类
说明:只有类和方法,有抽象的概念,成员变量没有抽象的概念 ☆
抽象类:有抽象方法的类,就是抽象类 ☆
抽象类:在class之前写上abstract即可
抽象方法:在返回值类型之前写上abstract关键字,然后去掉大括号,直接分号结束
注意事项:
①抽象类中,也可以定义普通方法
②抽象类中可以没有抽象方法,但抽象方法只能在抽象类中
③抽象类不能直接new,也就是不能直接实例化 ☆
④抽象类的使用,必须用一个子类去继承该抽象类,然后重写抽象类中所有的【抽象方法】 ☆(这个过程叫做实现)
⑤重写时,要加@Override,然后去掉abstract关键字,并加上{} ☆
⑥真实调用的是创建的子类对象 ☆
⑦没有抽象方法的抽象类,也不能直接创建(不是无意义,特殊场合会出现,如适配器模式)
⑧特殊情况:如果子类没有实现所有的抽象方法,还没有报错,那么子类就必须也是抽象类 ☆
关于java接口
接口解释:interface
①生活中的接口:电源插座、USB接口(接口是一种公共的规范标准)
②代码中的接口:就是多个类的公共标准 ☆
-
接口说明:接口是一种引用数据类型,还是.java文件,接口里面最重要的内容,就是其中的抽象方法
-
接口格式:public interface接口名{…}
-
接口内容:☆(类中的内容:成员变量VS成员方法 ☆)
-
JDK1.8中的接口:常量、抽象方法、默认方法、静态方法(四种 ☆)
-
JDK1.9中的接口:还可以存放私有方法(我们不考虑)
接口的抽象方法
说明:接口中最重要的,也是最常用的就是抽象方法 (在任何jdk版本,接口中都可以定义抽象方法)
说明:接口中的抽象方法定义格式,与抽象类中的定义格式相同:public abstract 返回值类型 方法名(参数列表);
写法:
注意事项:
①接口当中的抽象方法,修饰符必须是两个固定的关键字:public abstract
②public abstract这两个关键字可以省略
③抽象方法的三要素可以随需求定义 ☆(返回值类型、方法名、参数列表)
接口使用:
注意:接口同抽象类,不能直接new实例化使用,必须有一个“实现类”去实现接口
【重点】 可以使用匿名类【和线程相似】
public interface Demo01 {
void add()