日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java继承的举例_java继承实例

發布時間:2023/12/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java继承的举例_java继承实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實例需求:實現一個名為Person的類和它的子類Employee,Manager是Employee的子類,設計一 個類Add()用于漲工資,普通員工一次能漲10%,經理能漲20%。

具體要求如下:

(1)Person類中的屬性有:姓名name String(類型),地址address(String類型),定義該類的構造方法;(2)Employee 類中的屬性有:工號ID(String類型),工資wage(double類型),工齡(int 型),定義該類的構造方法;

(3)Manager類中的屬性有:級別level(String類型)定義該類的構造方法;

(4)編寫一個測試類,產生一個員工和一個經理,給該員工和經理漲工資。

1、利用繼承的特性

當子類沒有相應的成員方法時,調用父類的同名方法。

Person.java

package person_employee;

public class Person {

private String name = "";

private String address = "";

//定義構造方法

public Person(String name, String address){

this.name = name;

this.address = address;

}

}

Employee.java

package person_employee;

// 繼承Person類

public class Employee extends Person {

private String ID = "";

private double wage = 0;

private int age = 0;

public Employee(String name, String address, String ID, double wage, int age){

super(name, address); //調用父類的構造方法

this.ID = ID;

this.wage = wage;

this.age = age;

}

public double add(String position){// 判斷職位

if(position == "0"){

wage = wage*1.2;

}

else{

wage = wage*1.1;

}

return wage;

}

//設置get/set方法

public double getWage() {

return wage;

}

public void setWage(double wage) {

this.wage = wage;

}

}

Manager.java

package person_employee;

//繼承Employee類

public class Manager extends Employee{

private String level = ""; //1為普通員工,0為經理

public Manager(String name, String address, String ID, double wage, int age, String level){

super(name, address, ID, wage, age);

this.level = level;

}

//設置get/set方法

public String getLevel() {

return level;

}

public void setLevel(String level) {

this.level = level;

}

}

Test.java

package person_employee;

public class Test {

public static void main(String[] args) {

// 新建對象

Manager normal = new Manager("wsl", "jit", "12", 1000, 2, "1");

Manager manager = new Manager("ctl", "jitt", "123", 10000, 10, "0");

// 傳入職位,Manager類型的對象沒有add()方法,所以自動搜尋其父類,調用add()方法

normal.add(normal.getLevel());

manager.add(manager.getLevel());

System.out.println("normal wage is:"+normal.getWage());

System.out.println("manager wage is:"+manager.getWage());

}

}

打印結果:

打印結果

2、定義抽象類

定義抽象類,在子類中實現不同的抽象方法。

Person.java

package person_employee;

public class Person {

private String name = "";

private String address = "";

//定義構造方法

public Person(String name, String address){

this.name = name;

this.address = address;

}

}

Employee.java

package person_employee;

public abstract class Employee extends Person {

private String ID = "";

private double wage = 0;

private int age = 0;

public Employee(String name, String address, String ID, double wage, int age){

super(name, address);

this.ID = ID;

this.wage = wage;

this.age = age;

}

//定義抽象方法

public abstract void add(String position);

//設置get/set方法

public double getWage() {

return wage;

}

public void setWage(double wage) {

this.wage = wage;

}

}

Manager.java

package person_employee;

public class Manager extends Employee{

private String level = "";

public Manager(String name, String address, String ID, double wage, int age, String level){

super(name, address, ID, wage, age);

this.level = level;

}

//實現抽象方法

public void add(String position){

double wage = super.getWage();

if(position == "0"){

super.setWage(wage*1.2);

}

else{

super.setWage(wage*1.1);;

}

}

public String getLevel() {

return level;

}

public void setLevel(String level) {

this.level = level;

}

}

Test.java

package person_employee;

public class Test {

public static void main(String[] args) {

Manager normal = new Manager("wsl", "jit", "12", 1000, 2, "1");

Manager manager = new Manager("ctl", "jitt", "123", 10000, 10, "0");

normal.add(normal.getLevel());

manager.add(manager.getLevel());

System.out.println("normal wage is:"+normal.getWage());

System.out.println("manager wage is:"+manager.getWage());

}

}

打印結果一樣。

3、在2的基礎上利用多態實現方法的重載

Manager.java

package person_employee;

public class Manager extends Employee{

private String level = "";

public Manager(String name, String address, String ID, double wage, int age, String level){

super(name, address, ID, wage, age);

this.level = level;

}

//實現抽象方法

public void add(){

double wage = super.getWage();

super.setWage(wage*1.1);

}

public void add(String position){

double wage = super.getWage();

super.setWage(wage*1.2);

}

public String getLevel() {

return level;

}

public void setLevel(String level) {

this.level = level;

}

}

Test.java

package person_employee;

public class Test {

public static void main(String[] args) {

Manager normal = new Manager("wsl", "jit", "12", 1000, 2, "1");

Manager manager = new Manager("ctl", "jitt", "123", 10000, 10, "0");

normal.add();

manager.add(manager.getLevel());

System.out.println("normal wage is:"+normal.getWage());

System.out.println("manager wage is:"+manager.getWage());

}

}

打印結果一樣

總結

以上是生活随笔為你收集整理的java继承的举例_java继承实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。