温馨提示×

java中的abstract怎么使用

小亿
94
2023-08-30 01:08:01
栏目: 编程语言

在Java中,abstract是一个关键字,用于修饰类、方法和接口。

  1. 修饰类:
  • 抽象类是不能被实例化的,只能被继承。

  • 抽象类可以有构造方法,但是不能通过new关键字直接实例化,只能通过子类继承并实例化。

  • 抽象类可以包含抽象方法和非抽象方法。

  • 子类继承抽象类时,必须实现所有抽象方法,否则子类也必须声明为抽象类。

示例:

public abstract class Animal {
public abstract void makeSound();
public void sleep() {
System.out.println("Animal is sleeping");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Animal dog = new Dog();
dog.makeSound(); // 输出 "Dog is barking"
dog.sleep(); // 输出 "Animal is sleeping"
}
}
  1. 修饰方法:
  • 抽象方法没有方法体,只有方法签名。

  • 抽象方法必须定义在抽象类中。

  • 子类继承抽象类时,必须实现所有抽象方法。

示例:

public abstract class Animal {
public abstract void makeSound();
public void sleep() {
System.out.println("Animal is sleeping");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Animal dog = new Dog();
dog.makeSound(); // 输出 "Dog is barking"
}
}
  1. 修饰接口:
  • 接口中的方法默认是抽象方法,不需要使用abstract关键字修饰。

  • 实现接口时,必须实现所有接口中的方法。

示例:

public interface Animal {
void makeSound();
}
public class Dog implements Animal {
@Override
public void makeSound() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Animal dog = new Dog();
dog.makeSound(); // 输出 "Dog is barking"
}
}

总结:

abstract关键字用于定义抽象类、抽象方法和接口,通过使用abstract关键字,可以使类、方法和接口具有抽象的特性,需要在子类中进行实现。

0