java技术博客

jsp博客
数据加载中……
抽象类和方法的用法.
/* 北大青鸟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);
    }

}

posted on 2008-10-29 18:52 郭兴华 阅读(206) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: