假设一个抽象类拥有所有三个方法,并且都是具体方法,而普通类则拥有所有三个方法,而且都是具体方法。
它们在应用程序中有何区别,因为它们现在基本上服务于相同的目的。为什么这是允许的?
拿一个抽象类来说:
abstract class A {
public void open() {}
public void close() {}
public void pull() {}
}
还有一个普通的类(class):
class A {
public void open() {}
public void close() {}
public void pull() {}
}
它们之间有什么区别,因为如果我们删除abstract
关键字则两者相同。
谁能解释一下吗?
最佳答案
具体类可以被实例化,但抽象类无论如何都不能实例化。编译器不关心类是否有抽象成员。抽象类无法实例化!当您使用匿名内部类实例化没有抽象成员的抽象类时,花括号中不需要任何内容。那是因为所有的方法都被实现了。我想这算是另一个区别。
关于java - 具有所有具体方法的普通类和具有所有具体方法的抽象类有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32423883/