java练习---抽象类

编写一个Employee类,声明为抽象类,包含如下三个属性:name,id,salary。提供必要的构造器和抽象方法:work()。对于Manager类来说,他既是员工,还具有奖金(bonus)的属性。请使用继承的思想,设计Employee类和Manager类,要求类中提供必要的方法进行属性访问。

Employee.java
package com.company;

public abstract class Employee {
    String name;
    int id;
    double salary;

    public abstract void work();// 工作方法

}

Manager.java
package com.company;

public class Manager extends Employee{

    private double bonus;// 奖金

    public Manager(int id, String name, int salary, double bonus) {
        this.id = id;
        this.name = name;
        this.salary = salary;
        this.bonus = bonus;

    }

    public double getBonus() {
        return bonus;
    }

    public void setBonus(double bonus) {
        this.bonus = bonus;
    }

    @Override
    public void work() {
        System.out.println("工作为收钱");
    }

    @Override
    public String toString() {
        return "Manager{" +
                "bonus=" + bonus +
                ", name='" + name + '\'' +
                ", id=" + id +
                ", salary=" + salary +
                '}';
    }
}

package com.company;

import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

import java.util.Scanner;
import java.util.Vector;

public class Main {

    /**
     * @param args
     * @lzx
     */
    public static void main(String[] args) {

    /*
        编写一个Employee类,声明为抽象类,
        包含如下三个属性:name,id,salary。
        提供必要的构造器和抽象方法:work()。
        对于Manager类来说,他既是员工,还具有奖金(bonus)的属性。
        请使用继承的思想,设计Employee类和Manager类,要求类
        中提供必要的方法进行属性访问。
     */

    Manager manager= new Manager(10086,"LZX",10000,3000);
    manager.work();
    System.out.println(manager.toString());
    }
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一个employee抽象类声明: ``` public abstract class Employee { // 声明抽象方法 public abstract double calculateSalary(); public abstract void displayInfo(); } ``` 这个声明了两个抽象方法,calculateSalary()和displayInfo(),这两个方法没有实现,需要在子中实现。同时,这个被声明为抽象类,意味着不能直接实例化,只能被用作其他的父。 ### 回答2: 一个抽象类一个不能被实例化的,它仅仅提供接口和方法,这些方法可以被继承该的子所实现。在编写一个employee时,我们可以将其声明为抽象类,这样的话,我们可以定义employee所有子必须实现的基本方法和属性,以确保他们在继承employee后不会遗漏任何重要的功能。 我们可以编写employee时声明一些抽象方法,例如:pay(),为其它提供一个抽象方法的签名,以描述他们的基本工资、奖励和福利等。其他可以定义的抽象方法包括:computePay(),getName()等等。 同时,我们可以在employee中定义一些实例变量来存储雇员的个人数据,例如:工号、姓名、地址、电话号码和邮件地址等等。这些变量可以通过构造函数来初始化,并且在子中可以直接访问这些变量。 除了基本的方法和属性,一个抽象的employee也需要定义一些辅助方法以帮助子在运行过程中更加轻松地处理数据,例如:计算税金和扣除福利等。 最后,在编写employee时,我们需要记住,在Java中,抽象类不能直接被实例化,所以必须创建子并重写其中的抽象方法才能使用。因此,我们需要在employee中使用关键字abstract来定义这些抽象方法,以确保子必须实现它们。 ### 回答3: Employee一个代表员工的,其中包含员工的基本信息和相关操作。可以定义Employee作为一个抽象类,以确保员工对象的正确性和一致性。以下是Employee的一些常见属性和方法: 1.属性 - employeeID,员工ID - name,员工姓名 - gender,员工性别 - age,员工年龄 - department,员工所在部门 - salary,员工工资 - hireDate,员工入职日期 2.方法 - 获取员工信息:getEmployeeInfo() - 计算员工薪水:calculateSalary() - 员工升职:promote() - 员工调岗:transfer() - 员工离职:resign() 其中,计算员工薪水的方法是需要根据公司制定的薪资规则来实现的,可以在子中进行具体实现,从而保持Employee的抽象性。而升职、调岗和离职等方法也可以在子中进行具体实现,以满足不同公司的需求。 Employee还可以定义一些抽象方法,例如: - 获取员工职位:abstract String getPosition() - 获取员工级别:abstract int getLevel() 这些方法需要在子中进行具体实现,以便能够获取员工的职位和级别信息。 Employee作为抽象类,不可以直接实例化,需要通过创建其子的对象来进行使用。子可以根据不同的员工型来进行特化,从而使得Employee具有更高的扩展性和灵活性。例如,可以创建Manager、Clerk、Engineer等不同型的员工子,从而满足不同公司的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值