首页 > 技术文章 > 收获

feng747 2020-10-07 19:58 原文

1.在Java语言中使用abstract class来定义抽象类。如下实例:

public abstract class Employee
{
   private String name;
   private String address;
   private int number;
   public Employee(String name, String address, int number)
   {
      System.out.println("Constructing an Employee");
      this.name = name;
      this.address = address;
      this.number = number;
   }
   public double computePay()
   {
     System.out.println("Inside Employee computePay");
     return 0.0;
   }
   public void mailCheck()
   {
      System.out.println("Mailing a check to " + this.name
       + " " + this.address);
   }
   public String toString()
   {
      return name + " " + address + " " + number;
   }
   public String getName()
   {
      return name;
   }
   public String getAddress()
   {
      return address;
   }
   public void setAddress(String newAddress)
   {
      address = newAddress;
   }
   public int getNumber()
   {
     return number;
   }
}

注意到该 Employee 类没有什么不同,尽管该类是抽象类,但是它仍然有 3 个成员变量,7 个成员方法和 1 个构造方法

我们能通过一般的方法继承Employee类

public class Salary extends Employee
{
   private double salary; //Annual salary
   public Salary(String name, String address, int number, double
      salary)
   {
       super(name, address, number);
       setSalary(salary);
   }
   public void mailCheck()
   {
       System.out.println("Within mailCheck of Salary class ");
       System.out.println("Mailing check to " + getName()
       + " with salary " + salary);
   }
   public double getSalary()
   {
       return salary;
   }
   public void setSalary(double newSalary)
   {
       if(newSalary >= 0.0)
       {
          salary = newSalary;
       }
   }
   public double computePay()
   {
      System.out.println("Computing salary pay for " + getName());
      return salary/52;
   }
}

2没有什么不会的

3明天学习抽象方法

publicabstractclassEmployee{privateStringname; privateStringaddress; privateintnumber; publicEmployee(Stringname, Stringaddress, intnumber){System.out.println("Constructing an Employee"); this.name = name; this.address = address; this.number = number; }publicdoublecomputePay(){System.out.println("Inside Employee computePay"); return0.0; }publicvoidmailCheck(){System.out.println("Mailing a check to " + this.name + "" + this.address); }publicStringtoString(){returnname + "" + address + "" + number; }publicStringgetName(){returnname; }publicStringgetAddress(){returnaddress; }publicvoidsetAddress(StringnewAddress){address = newAddress; }publicintgetNumber(){returnnumber; }}

推荐阅读