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

1)抽象(abstract)类

1) abstract是一种访问修饰符,适用于类或方法。

2) abstract(关键字修饰符)用于定义抽象类。

示例

abstract class AbstractClass{

void printHello(){

System.out.println("Say Hello to everyone");

}

void printHi();

}

3)当我们仅部分地(不完全)谈论实现时。这意味着我们可以在一个类中实现几种方法(如果需要)。

4) Abstact类可以包含抽象方法和具体方法。(即,如果您在抽象类中定义具体方法,则没有任何限制,这就是我们将其作为部分实现方式进行调用的原因)。

5)抽象类中存在的每个方法都不必是公共的和抽象的。

6)如果我们正在讨论哪些修饰符适用于抽象类方法(修饰符对抽象类方法没有限制,因为不需要将方法设为公共或抽象)。

7)在抽象类中声明的变量不必是公共的,静态的和最终的。

8)我们可以很高兴地在抽象类变量上声明任何修饰符(即无限制)。

9)不需要在声明抽象类变量时执行初始化(即抽象类变量可能不是最终的)。

10)我们可以在抽象类中声明构造函数,它将在创建子类对象时执行。

2)Java中的接口(interface)

1) interface是关键字修饰符,仅适用于interface。

2)接口(关键字修饰符)用于定义接口。

示例

interface Interface{

void printHello();

void printHi();

}

3)当我们不讨论实现时,这意味着我们无法在接口中实现任何方法(即,它是完全抽象的)。

4)接口不能包含具体方法。(即,如果要在接口中定义具体方法,这是限制性的,这就是我们将其称为完全抽象的原因)。

5)接口中存在的每种方法都必须是公共的和抽象的。

6)如果我们正在讨论哪些修饰符适用于接口方法(修饰符对接口方法的限制,因为需要该方法应该是公共的和抽象的)。

7)接口内部声明的变量必须是public,static和final。

8)我们不能高兴地在接口变量上声明任何修饰符(即像私有,受保护,瞬态和易失性一样受限制)。

9)需要在声明接口变量时(即接口变量为最终变量)执行初始化。

10)我们无法在接口中声明构造函数,因为无法创建接口对象。

阅读更多:

  • 比较Java中的array和ArrayList。

  • Java-浮点数和双精度数之间的差异。

  • Java-投掷之间的区别。

  • Java-next()nextLine()方法之间的区别。

以上是 抽象类和接口之间有什么区别? 的全部内容, 来源链接: utcz.com/z/343244.html

回到顶部