java接口与抽象类的区别
时间: 2024-03-25 15:32:45 浏览: 99
Java中接口和抽象类有以下区别:
1. 方法类型:抽象类可以有抽象方法和具体方法,而接口中的方法都是抽象的。
2. 继承关系:一个类只能继承一个抽象类,但可以实现多个接口。
3. 变量定义:抽象类中可以定义变量,接口中只能定义常量(final变量)。
4. 构造方法:抽象类可以有构造方法,接口不能有构造方法。
以下是一个示例来说明这些区别:
```java
// 抽象类
abstract class AbstractClass {
// 抽象方法
public abstract void abstractMethod();
// 具体方法
public void concreteMethod() {
System.out.println("This is a concrete method in abstract class.");
}
// 变量定义
protected int variable;
}
// 接口
interface Interface {
// 抽象方法
void abstractMethod();
// 常量定义
int CONSTANT = 10;
}
// 实现接口和继承抽象类
class MyClass extends AbstractClass implements Interface {
// 实现抽象方法
public void abstractMethod() {
System.out.println("This is the implementation of abstract method.");
}
}
// 测试类
public class Main {
public static void main(String[] args) {
MyClass myClass = new MyClass();
myClass.abstractMethod(); // 输出:This is the implementation of abstract method.
myClass.concreteMethod(); // 输出:This is a concrete method in abstract class.
System.out.println(myClass.variable); // 输出:0
System.out.println(Interface.CONSTANT); // 输出:10
}
}
```
阅读全文