wordpress整站安装,宁波妇科专家哪个最好,福建建设执业资格网站报名系统,合肥建设信息网站抽象类的特点总结 不能实例化#xff1a;抽象类不能直接创建实例。它只能被继承。即#xff0c;你不能用 new 关键字创建抽象类的对象。 可以包含抽象方法#xff1a;抽象类可以包含一个或多个抽象方法#xff08;没有方法体#xff09;#xff0c;这些方法必须在子类中… 抽象类的特点总结 不能实例化抽象类不能直接创建实例。它只能被继承。即你不能用 new 关键字创建抽象类的对象。 可以包含抽象方法抽象类可以包含一个或多个抽象方法没有方法体这些方法必须在子类中实现。抽象方法的定义是 abstract 关键字修饰的。 可以包含普通方法除了抽象方法抽象类还可以包含已实现的方法即普通方法。这些方法可以被子类继承和使用或者被重写覆盖。 可以有构造函数抽象类可以有构造函数构造函数通常在子类实例化时被调用用于初始化抽象类的一些状态。 可以包含字段抽象类可以有字段成员变量并且这些字段可以被子类继承和访问。 可以实现接口抽象类可以实现一个或多个接口但它不需要实现接口中的所有方法子类需要提供具体的实现。 可以有访问修饰符抽象类可以具有访问修饰符如 public, protected, private这决定了它的访问级别和子类访问的权限。 抽象类主要用于设计一个类的基础结构并允许子类实现具体的细节。这种设计模式常用于模板方法模式、工厂模式等场景中。 1. 基本的抽象类示例 abstract class Animal {// 抽象方法没有实现abstract void makeSound();// 普通方法有实现void eat() {System.out.println(This animal is eating.);}
}class Dog extends Animal {Overridevoid makeSound() {System.out.println(Bark);}
}class Cat extends Animal {Overridevoid makeSound() {System.out.println(Meow);}
}public class Main {public static void main(String[] args) {Animal myDog new Dog();myDog.makeSound(); // Output: BarkmyDog.eat(); // Output: This animal is eating.Animal myCat new Cat();myCat.makeSound(); // Output: MeowmyCat.eat(); // Output: This animal is eating.}
}abstract class Beverage {// 模板方法final void prepareRecipe() {boilWater();brew();pourInCup();addCondiments();}// 具体的步骤private void boilWater() {System.out.println(Boiling water);}private void pourInCup() {System.out.println(Pouring into cup);}// 抽象方法由子类实现abstract void brew();abstract void addCondiments();
}class Tea extends Beverage {Overridevoid brew() {System.out.println(Steeping the tea);}Overridevoid addCondiments() {System.out.println(Adding lemon);}
}class Coffee extends Beverage {Overridevoid brew() {System.out.println(Dripping coffee through filter);}Overridevoid addCondiments() {System.out.println(Adding sugar and milk);}
}public class Main {public static void main(String[] args) {Beverage tea new Tea();tea.prepareRecipe();Beverage coffee new Coffee();coffee.prepareRecipe();}
}