抽象类和方法的用法.

抽象类和方法的用法.
/**/ /* 北大青鸟APTECH
 * 版权所有
 
*/

/** */ /**
 * 这个程序演示抽象类和方法的用法.
 * @版本 1.0 2005 年 5 月 20 日
 * 
@author Michael
 
*/

abstract   class  Staff  {
  
/** *//** 存储姓名. */
    
protected String name;
    
    
/** *//** 
     * 构造方法.
     
*/

    Staff() 
{
  }

    
/** *//** 
     * 构造方法.
     * 
@param str 传递至构造方法
     
*/

    Staff(String str) 
{
    name 
= str;
    }

    
/** *//** 
     * 抽象方法.
     * @返回 double
     
*/

    
abstract double calculatePay();
}

 
/** */ /**
  * 这个类派生自抽象类.
  * @版本 1.0 2005 年 5 月 20 日
  * 
@author Michael
  
*/

class  Teacher  extends  Staff  {
    
/** *//** 存储教授班级的编号. */
    
protected int classTaken;
    
/** *//** 构造方法.
     
*/

    Teacher() 
{
    }

    
/** *//** 
     * 构造方法.
     * 
@param str 传递至构造方法的参数
     * 
@param num 传递至构造方法的参数
     
*/

    Teacher(String str, 
int num) {
       
super(str);
       classTaken 
= num;
    }

    
/** *//** 
     * 重写的方法.
     * @返回 classTaken
     
*/

    
double calculatePay() {
        
return 100 * classTaken;
    }

}

/** */ /**
 * 这个类派生自抽象类.
 * @版本 1.0 2005 年 5 月 20 日
 * @作者 Michael
 
*/

class  NonTeachingStaff  extends  Staff  {
    
/** *//** 存储工作的小时数. */
    
protected int hoursWorked;
    
/** *//** 
     * 构造方法.
     
*/

    NonTeachingStaff() 
{
    }


    
/** *//** 
     * 构造方法.
     * 
@param str 传递至构造方法
     * 
@param hours 传递至构造方法
     
*/

    NonTeachingStaff(String str, 
int hours) {
        
super(str);
        hoursWorked 
= hours;
    }


    
/** *//** 
     * 重写的方法.
     * @返回 classTaken
     
*/

    
double calculatePay() {
        
return 50 * hoursWorked;
    }

}


/** */ /**
 * 这个类测试对象引用.
 * @版本 1.0 2005 年 5 月 20 日
 * @作者 Michael
 
*/

public   class  SalaryCalculate  {
    
/** *//** 
     * 构造方法. 
     
*/

    
protected SalaryCalculate() {
    }

     
/** *//**
      * 这是一个 main 方法.
      * 
@param args 传递至 main 方法
      
*/

    
public static void main(String[] args) {
        Teacher teachObj 
= new Teacher("John"48);
        
double earning = teachObj.calculatePay();
        System.out.println(
"教员 " + teachObj.name
        
+ " 的薪资为: " + earning);
        NonTeachingStaff nonTeachObj 
= new NonTeachingStaff("Paul"64);
        earning 
= nonTeachObj.calculatePay();
        System.out.println(
"非教学人员 "
        
+ nonTeachObj.name + " 的薪资为: " + earning);
    }

}

你可能感兴趣的:(抽象类和方法的用法.)