普通类和抽象类、接口和抽象类的区别

问题一:普通类和抽象类有哪些区别?

抽象类不能被实例化
抽象类可以有抽象方法只需申明,无须实现
有抽象方法的类一定是抽象类;
抽象类的子类必须实现抽象类中的所有抽象方法,否则子类仍然是抽象类;
抽象方法不能声明为静态、不能被static、final修饰。

问题二:接口和抽象类有什么区别?

(1)接口

接口使用interface修饰;
接口不能实例化
类可以实现多个接口;

①java8之前,接口中的方法都是抽象方法,省略了public abstract。②java8之后;接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现;

(2)抽象类

抽象类使用abstract修饰;
抽象类不能被实例化
抽象类只能单继承
抽象类中可以包含抽象方法和非抽象方法,非抽象方法需要有方法体
如果一个类继承了抽象类,①如果实现了所有的抽象方法,子类可以不是抽象类;②如果没有实现所有的抽象方法子类仍然是抽象类

猜你喜欢

转载自blog.csdn.net/m0_48170265/article/details/130074699