編程第三周的日常<一>

繼承

1、從已有的類創(chuàng)建新類的過(guò)程就是繼承(實(shí)現(xiàn)了代碼的復(fù)用)

(1)

  • 提供繼承信息的稱之為父類
  • 提供繼承信息的稱之為子類
  • 子類和父類是一種 is-a 的關(guān)系

(2)繼承的特點(diǎn)

  • Java是單繼承的【一個(gè)類只有一個(gè)父類】
  • 多層繼承【一個(gè)爸爸可以有多個(gè)兒子,兒子也可以再生兒子】

(3)什么時(shí)候用繼承

  • 當(dāng)事物之間存在所屬關(guān)系時(shí)。

繼承中成員變量的特點(diǎn)

  • 1、當(dāng)父類與子類成員變量同名時(shí)用“super.”來(lái)表示父類中的成員變量
  • 2、this.是一個(gè)引用,總是指向當(dāng)前的使用對(duì)象
  • 3、super.不是引用,當(dāng)子父類出現(xiàn)同名成員現(xiàn)象時(shí),用于區(qū)分子父類成員

繼承中、成員函數(shù)的特點(diǎn)

  • 重寫:子類在繼承父類時(shí),含有和父類中一樣的函數(shù),當(dāng)創(chuàng)建子類對(duì)象時(shí),執(zhí)行的時(shí)重寫之后的方法。
  • 作用:沿襲了父類的功能

繼承中構(gòu)造函數(shù)的特點(diǎn)

  • 1、在創(chuàng)建子類的對(duì)象時(shí),先調(diào)用父類的構(gòu)造方法,再調(diào)用子類的構(gòu)造方法。

抽象類

  • 含有抽象方法是類,沒(méi)有實(shí)現(xiàn)方法,用abstract修飾。
  • 抽象類的特點(diǎn):抽象類無(wú)法創(chuàng)建對(duì)象,因?yàn)楹谐橄蟮姆椒?。繼承了抽象類的子類,沒(méi)有重寫父類中的抽象方法,該子類還是抽象類。抽象類是專門留給其他類去繼承的類。

實(shí)例

  • 公司里的各個(gè)員工的工資狀況
    1、寫一個(gè)員工的父類
    package cn.edu.swpu;

/**

  • 發(fā)工資
  • @author Administrator

*/
public abstract class Employee1 {
protected String name;

/**
 * 構(gòu)造器
 * 
 * @param name
 *            員工姓名
 */
public Employee1(String name) {
    this.name = name;
}

/**
 * 讀取名字
 * 
 * @return返回名字
 */
public String getName() {
    return name;
}

/**
 * 計(jì)算月薪
 * @return 返回月薪
 */
public abstract double getSalary();

}

2、分別寫經(jīng)理、程序員、銷售員的子類

package cn.edu.swpu;
/**

  • 部門經(jīng)理

  • @param name
    /
    public class Manager1 extends Employee1 {
    /
    *

  • 構(gòu)造器

  • @param name
    */
    public Manager1(String name) {
    super(name);
    // TODO Auto-generated constructor stub
    }

    @Override
    public double getSalary() {
    // TODO Auto-generated method stub
    return 12000;
    }
    }

package cn.edu.swpu;

/**

  • 程序員
  • @author Administrator

*/
public class Programmer1 extends Employee1 {
private int workingHour;

/**
 * 構(gòu)造器
 * 
 * @param name  名字
 *           
 */
public Programmer1(String name) {
    super(name);

}

/**
 * 設(shè)置本月工作時(shí)間
 * 
 * @param workingHour 工作時(shí)間(以小時(shí)為單位)
 *            
 */
public void setWorkingHour(int workingHour) {
    this.workingHour = workingHour;
}

@Override
public double getSalary() {
    // TODO Auto-generated method stub
    return 150 * workingHour;
}

}

package cn.edu.swpu;
/**

  • 銷售人員
  • @author Administrator

/
public class Salesman1 extends Employee1 {
private double sales;
/
*

  • 構(gòu)造器

  • @param name 銷售人員的名字
    /
    public Salesman1(String name) {
    super(name);
    // TODO Auto-generated constructor stub
    }
    /
    *

  • 寫銷售額

  • @param sales 銷售額
    */
    public void setSales(double sales) {
    this.sales = sales;
    }

    @Override
    public double getSalary() {

     return 1500 + sales * 0.05;
    

    } //多態(tài)的方法,

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容