博主:_LJaXi Or 東方幻想郷
专栏: Java | 从入门到入坟
Java 抽象类 & 抽象方法
- 抽象类的概念 👅
- 抽象方法的概念 🐬
- 抽象类和抽象方法结合使用 🦄
Java中的抽象类和抽象方法是面向对象编程中的重要概念,它们用于定义一些具有共性的类和方法,但是又不能被直接实例化或调用
抽象类的概念 👅
抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类通常用于定义一些具有共性的类,但是又不能被直接实例化的情况。
抽象类的定义方式
public abstract class Animal {// ...........
}
抽象类的关键字是
abstract
,它告诉编译器这是一个抽象类。抽象类可以包含普通的成员变量和成员方法,也可以包含抽象方法。但是,抽象类中至少要包含一个抽象方法,否则就没有必要定义为抽象类.
抽象方法的概念 🐬
抽象方法是一种没有实现的方法,它只有方法签名,没有方法体。抽象方法通常用于定义一些具有共性的方法,但是具体实现方式可能因为子类的不同而不同
抽象方法的定义方式
public abstract void eat(); // 只有方法签名
抽象方法的关键字是
abstract
,它告诉编译器这是一个抽象方法。抽象方法没有方法体,因为它的具体实现方式是由子类来实现的。子类必须实现父类中的所有抽象方法,否则子类也必须定义为抽象类。
抽象类和抽象方法结合使用 🦄
你是内内个内内内个内个内内,阳光彩虹小白马 🦄 滴滴答滴滴答
抽象类和抽象方法通常用于定义一些具有共性的类和方法,但是具体实现方式可能因为子类的不同而不同。使用抽象类和抽象方法可以使代码更加灵活和可扩展
public abstract class Animal {private String name;public Animal(String name) {this.name = name;}public String getName() {return name;}public abstract void eat();
}public class Dog extends Animal {public Dog(String name) {super(name);}@Overridepublic void eat() {System.out.println(getName() + " is eating meat");}
}public class Cat extends Animal {public Cat(String name) {super(name);}@Overridepublic void eat() {System.out.println(getName() + " is eating fish");}
}public class Main {public static void main(String[] args) {Animal dog = new Dog("Tom");Animal cat = new Cat("Jerry");dog.eat(); // Tom is eating meatcat.eat(); // Jerry is eating fish}
}
在这个例子中,
Animal
是一个抽象类,它定义了一个抽象方法eat()
。Dog
和Cat
是Animal
的子类,它们必须实现eat()
方法。在Main
类中,我们创建了一个Dog
对象和一个Cat
对象,并调用它们的eat()
方法。由于Dog
和Cat
都实现了eat()
方法,所以它们的行为是不同的.