我有一个抽象类和 2 个子类。如果您无法实例化抽象类,您将如何使用它们

dav*_*veb 1 java inheritance class abstract

我有一个抽象类和 2 个子类。如果您无法实例化抽象类,您将如何使用它们。我编写的代码最初使用类和子类,后来意识到最好从父类中使用 2 个子类。我知道这是在 Java 中进行多重继承的一种方式。我现有的代码正在实例化父类,我正在处理它。现在,我无法实例化父类,因为该类现在是抽象的。是否只有我现在可以实例化的子类?这些都是普通班。

一个子类是雇员,有出生日期、工资,另一个子类是客户,有最喜欢的食物、付款明细

父类是人

任何帮助将非常感激。

Mik*_*lSP 5

您不需要实例化父类。例如,您必须出于下一个原因使用它:

您可以保留一些通用的有用方法,您可以在子类中使用(并通过父类的变量链接到它)(如果需要,也可以覆盖它),例如:

    abstract class Person{
       protected String name;
       protected String surname;
       public String getFullName(){return name+" "+surname;}
    }
    public class Employee extends Person{ 
       public Employee(String name, String surname){
          this.name=name; this.surname=surname;
       }
    }
    public class Mister extends Person{
       public Employee(String name, String surname){
          this.name=name; this.surname=surname;
       }
       public String getFullName(){return "Mr. "+name+" "+surname;}
    }
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

    Person p1=new Employee("Jonh","Doe");
    Person p2=new Mister("Jonh","Doe");
    p1.getFullName(); //John Doe
    p2.getFullName(); //Mr. John Doe
Run Code Online (Sandbox Code Playgroud)

PS:抽象类不是为了多重继承,多重继承是另外一回事(类可以从多个父级继承)