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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度