通过对面向对象的理解,面向对象有四大特点:抽象性、封装性、继承性和多态性。
而我们来了解的就是面向对象的最重要特征继承:
继承就是一种联结类的层次模型,并且继承允许和鼓励类的重用。使用继承可以很好的
表述共性的方法,也能更好的体现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; } }
时间: 2024-10-05 23:27:11