1、抽象类主要是将多个事物的共同特性抽取出来,定义抽象类用abstract class
2、抽象类中可以有具体方法的实现,也可以具有抽象方法
3、含有抽象方法的类必须定义为抽象类或者接口
4、抽象类中可以有构造方法和静态方法,静态方法需要有方法体
5、普通类继承抽象类时,必须重写抽象类中的抽象方法,否则该类也必须定义为抽象类
6、抽象类的抽象方法可以是public protected,缺省情况下默认为public,
如果方法用private修饰,则该方法必须有具体实现(含有方法体)
7、抽象类和普通类最大的区别是抽象类有抽象方法,不能new对象,抽象类在于被继承,其他都差不多
1、接口主要是描述功能,定义接口用interface关键字
2、接口中的方法都为抽象方法,默认public abstract修饰,不能为protected,
JDK1.8可以允许默认实现(default修饰)和静态方法(含有body),JDK11允许private修饰符
3、接口的变量默认public static final修饰,并且必须初始化,接口中不能有构造方法
4、普通类实现接口时,必须实现接口中所有的抽象方法,否则该类必须定义为抽象类
5、接口的出现就是解决java不能多继承的问题,接口可以多实现
6、接口和抽象类都不能实例化对象(不能new对象)
实现多个接口时的语法格式:
//用implements,多个接口用逗号隔开,并且重写两个接口中的所有抽象方法
public class InterfaceTest implements Interface1,Interface2 {
@Override
public void show88() {
}
@Override
public int show2() {
return 0;
}
}