面向对象的重要特征继承

     通过对面向对象的理解,面向对象有四大特点:抽象性、封装性、继承性和多态性。
  而我们来了解的就是面向对象的最重要特征继承:
    继承就是一种联结类的层次模型,并且继承允许和鼓励类的重用。使用继承可以很好的
  表述共性的方法,也能更好的体现java中的重用。我们可以从一个已有的类当中扩展出一个派生类,
  派生类可以继承已有的类中的所有属性。已有的类也被称为父类、超类,派生类也被称为子类。派生类
  更为适用修改和增加特殊的的需求,这也体现大自然中特殊和一般的关系。为了更好的理解继承,我们
  通过下面的例子来了解继承:

员工表中拿薪资的有两种,一是拿年薪的,一是按小时拿薪资的。

/**
 * 员工父类
 * 这是拿年薪和拿时薪所共有的属性
 * @author asus1
 *
 */
public class Employee {
	public String name;//姓名
	public String address;//邮寄地址
	public int SSN;//社保号
	public int number;//员工号
	
	public void println(){
		System.out.println("邮寄支票给员工"+name+"的地址为"+address);
	}
}
/**
 * 子类,继承Employee中所有属性和方法
 * 其中用到继承的关键字extends
 * @author asus1
 *
 */
public class Salary extends Employee{
	public double salary;//年薪,为这个类特有的属性
	/**
	 * 计算年薪
	 * @return 每周拿的薪资
	 */
	public double computerPay(){
		System.out.println("计算拿固定工资的员工"+name+"的工资");//name 就是继承Employee父类中的属性
		return salary/52; 
	}
}
/**
 * 拿时薪子类
 * 从Employee父类中使用关键字extends继承
 * @author asus1
 *
 */
public class Hourly extends Employee{
	public double hourlyRate;//没小时报酬
	public double hoursword;//每周工作时间
	/**
	 * 计算时薪员工的工资
	 * @return pay员工工资
	 */
	public double coumuterPay(){
		System.out.println("计算按时付酬员工"+name+"的工资");//name 就是继承Employee父类中的属性
		double pay = 0.0;
		if(hoursword <=40){
			pay = hourlyRate*hoursword;
		}else{//计算加班工资
			pay = (hourlyRate * 40) + (hourlyRate * (hoursword - 40)*1.5);
		}
		return pay;
	} 
}

  

原文地址:https://www.cnblogs.com/gzyfj/p/4393667.html