抽象类必须要有抽象方法吗? 普通类和抽象类有哪些区别?

public abstract class 抽象类 {
//抽象类中也可以有抽象方法
public abstract void test();
//非抽象方法
public static int demo() {
return 1;
}
}
-------------------------- 普通类和抽象类有哪些区别-----------------------------
  • 普通类不能包含抽象方法,抽象类可以包含抽象方法。

  • 抽象类不能直接实例化,普通类可以直接实例化。

抽象类不能使用 final 修饰 ?

答:不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类,如下图所示,编辑器也会提示错误信息:

抽象方法也不能用final

 

 接口和抽象类有什么区别?

  • 实现:抽象类的子类用 extends 来继承;接口必须使用 implements 来实现接口。

  • 构造函数:抽象类有构造函数;接口不无。

  • main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。

  • 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。

  • 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。

 
原文地址:https://www.cnblogs.com/Koma-vv/p/13466357.html