abstract抽象类的应用

Posted 生姜不爱蒜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abstract抽象类的应用相关的知识,希望对你有一定的参考价值。

/*
* 示例:
* 需求:公司中程序员姓名,工号,薪水,工作内容
* 项目经理有姓名,工号,薪水,奖金,工作内容
* 对给出需求进行数据建模
*
*
* 分析
* 在这个问题领域中,先给出涉及的对象
* 通过名词提炼发。
* 程序员:姓名,工号,薪水
* 行为:工作
* 项目经理:姓名,工号,薪水,奖金
* 行为:工作
*
* 经理与程序员不存在直接继承关系(经理不是程序员)
* 但程序员和经理有共性内容
* 可以将程序员和经理进行抽取,建立体系
*/
abstract class Employee//定义雇员类,里面包含程序员和经理两类的共性内容
{
    private String name;
    private String id;
    private double pay;
    Employee(String name,String id, double pay)
    {
        this.name = name;
        this.id = id;
        this.pay = pay;
    }

    public abstract void work();//行为是不同的,所以用到了抽象类对其进行向上抽取
}

class Programmer extends Employee//定义一个程序员类,它与经理的共性内容直接继承了雇员类中的内容
{
    Programmer(String name,String id, double pay)
    {
        super(name,id,pay);//通过super关键字直接对name,id,pay进行初始化
    }
    public void work()
    {
        System.out.println("code...");//程序员的行为
    }
}

class Manager extends Employee
{
    private int bonus;
    Manager(String name,String id,double pay,int bonus)
    {
        super(name,id,pay);//对name,id,pay进行初始化
        this.bonus = bonus;//对自己的特有内容,需要用this来进行初始化
    }

    public void work()
    {
        System.out.println("manage...");//经理的行为
    }
}

以上是关于abstract抽象类的应用的主要内容,如果未能解决你的问题,请参考以下文章

Java中抽象类和接口的区别(abstract class VS interface)

对象继承封装多态抽象类的组合应用

Java中的抽象类abstract

Java 设计模式 Day1 之面向抽象原则:抽象类的设计与应用分析

php 抽象类abstract

php 抽象类abstract