淘先锋技术网

首页 1 2 3 4 5 6 7

在Java中,抽象类和接口都是面向对象编程中的重要概念。

抽象类是一个不能被实例化的类,它仅仅是为子类提供一个通用的抽象模板。抽象类中的方法可以是抽象方法(没有实际实现)或者具体实现的方法。如果一个类继承了抽象类,它必须重写其所有抽象方法,否则也必须声明为抽象类。

abstract class Animal { 
public abstract void makeSound();  //抽象方法
public void sleep() {    //普通方法
System.out.println("睡觉zzz");
}
}
class Cat extends Animal {
public void makeSound(){
System.out.println("喵喵");
}
}

接口是一个包含了一些方法申明的纯抽象类。接口中的所有方法都是public abstract方法,不能有方法实现。如果一个类实现了接口,它必须实现所有接口中的方法。

interface Animal {
void makeSound();
void eat();
}
class Cat implements Animal {
public void makeSound() {
System.out.println("喵喵");
}
public void eat() {
System.out.println("鱼");
}
}

抽象类和接口的选择取决于具体的需要。如果需要创建一个类,并且想要为该类提供一些通用(但重要)的功能或行为,可以创建一个抽象类。如果需要定义一个外部类和实现这个类,可以使用接口。另外,Java的类只能单继承,但可以实现多个接口,这使得接口更加灵活。