抽象类和接口之间有什么区别?
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