lyghope 2022-09-24 21:17 采纳率: 50%
浏览 33
已结题

Java题,前面都没报错,最后的Add那个为什么错了,不懂

1.定义一个抽象类Person,有三个属性:姓名、性别、联系电话,用构造函数对三个属性进行赋初值,定义函数输出三个属性的值;

2.定义一个接口Person_Interface,声明一个常量为薪酬标准(自己设置一个值),声明一个方法计算薪酬(参数为天数)

3.定义一个学生类继承Person类,再增加两个属性:学号和专业,用构造函数对所有属性进行赋初值,并输出学生的所有信息;

4.定义一个教师类继承Person类并实现接口Person_Interface,定义一个工号,定义一个函数对教师的所有属性进行赋初值,并根据输入的天数结算教师薪酬,再定一个函数显示教师的所有信息。

5.定义一个测试类,对教师类和学生类实例化,并赋初值和显示出来。

package chap03;

public abstract class Person {
protected String name;
protected String sex;
protected String contect;
Person(String name1,String sex1,String contect1){
name=name1;
sex=sex1;
contect=contect1;
}
public void display(){
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("联系方式:"+contect);
}
}

package Impl;

public interface Person_Interface {
public static final double salary=3500.00;
public static final int day=15;
}

package chap03;

public class Student extends Person {
String sno;
String profession;
public Student(String name, String sex, String contect,
String sno1,String profession1) {
super(name, sex, contect);
sno=sno1;
profession=profession1;
// TODO Auto-generated constructor stub
}
public void display(){
System.out.println("学号:"+sno);
System.out.println("专业:"+profession);
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("联系方式:"+contect);
}
}

import Impl.Person_Interface;

public class Teacher extends Person implements Person_Interface {
String job_number;
public Teacher(String name1, String sex1,
String contect1,String job_number) {
super(name1, sex1, contect1);
this.job_number=job_number;
// TODO Auto-generated constructor stub
}
public void display(){
System.out.println("工号:"+job_number);
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("联系方式:"+contect);
}
}

package chap03;

import Impl.Person_Interface;

public class Add implements Person_Interface {
public void add(int x,int y){//x为天数,y为日资
int z=x*y;
System.out.println("薪资为:"+z);

}

}

package chap03;

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("---------------job");
    Student job=new Student("123456","computer",
            "job","男","147258");
    job.display();
    System.out.println("---------------Tom");
    Teacher Tom =new Teacher("159487","Tom","男","Java");
    Tom.display();
}
    Add abc=new Add();
    abc.display();

}

最后为什么报错了呢?求解

  • 写回答

1条回答 默认 最新

  • a5156520 2022-09-25 13:40
    关注

    因为Add类没有一个叫display()的方法 ,然后因为Add相关的这两行代码放到了main方法外面,所以报错了。

    然后应该给Person_Interface接口增加一个计算工资的方法,在Teacher教师类中实现它.

    修改了一下,如下,为了方便复制代码和测试,我几个类和接口放在一个代码文件中:

    package object;
    abstract class Person {
        protected String name;
        protected String sex;
        protected String contect;
        
        Person(String name1,String sex1,String contect1){
            name=name1;
            sex=sex1;
            contect=contect1;
        }
        
        public void display(){
            System.out.println("姓名:"+name);
            System.out.println("性别:"+sex);
            System.out.println("联系方式:"+contect);
        }
    }
    
    
    
    interface Person_Interface {
        public static final double salary=200.00;
        public static final int day=15;
        
        public double getWorkMoney(int day);
    }
    
    
     class Student extends Person {
        String sno;
        String profession;
        
        public Student(String name, String sex, String contect,
        String sno1,String profession1) {
            super(name, sex, contect);
            this.sno=sno1;
            profession=profession1;
            // TODO Auto-generated constructor stub
        }
        
        public void display(){
            System.out.println("学号:"+this.sno);
            System.out.println("专业:"+this.profession);
            System.out.println("姓名:"+this.name);
            System.out.println("性别:"+this.sex);
            System.out.println("联系方式:"+this.contect);
        }
    }
    
    
    
    class Teacher extends Person implements Person_Interface {
        String job_number;
        double money;
        
        public Teacher(String name1, String sex1,
        String contect1,String job_number,int day) {
            super(name1, sex1, contect1);
            this.job_number=job_number;
            // TODO Auto-generated constructor stub
            money = getWorkMoney(day);
        }
        
        
        public void display(){
            System.out.println("工号:"+this.job_number);
            System.out.println("姓名:"+this.name);
            System.out.println("性别:"+this.sex);
            System.out.println("联系方式:"+this.contect);
            System.out.println("工作薪酬:"+this.money);
        }
    
    
        @Override
        public double getWorkMoney(int day) {
            // TODO Auto-generated method stub
            return salary*day;
        }
    }
    
    
    
    
    //class Add implements Person_Interface {
    //    
    //    public void add(int x,int y){//x为天数,y为日资
    //    int z=x*y;
    //    System.out.println("薪资为:"+z);
    //    
    //    }
    //}
    
    
    public class Test {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("---------------job");
        Student job=new Student("job","男","147258","123456","computer" );
        job.display();
        
        System.out.println("---------------Tom");
        Teacher Tom =new Teacher("Tom","男","Java","159487",30);
        Tom.display();
    
        
        
        
        }
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月24日
  • 已采纳回答 10月16日
  • 创建了问题 9月24日

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误