计算机小菜鸟 ~ 2022-04-11 16:33 采纳率: 58.8%
浏览 70
已结题

关于类和继承关系的运用

为什么代码是错的呀,该怎么去修改它才可以运行出结果?

img

public class TestApp38 {
        public static void main(String[] args) {
           Student38[] students=new Student38[4] ;
         students[0]=new Student38("1001","张三",60);
         students[1]=new Undergraduate38("1002","李四",90,20); 
         students[2]=new Undergraduate38("1003","王五",80,50); 
         students[3]=new Foreign38("1004","赵六",70,30,"Pakistan"); 
         for(Student38 student : students){ 
         System.out.println(student); 
         } 
         } 
        }


        public static class Student38 {
            private String clsNum;
            private String name;
            private int avgscore;
            private int xuefen;
            private String country;

            public Student38(){
            }

            public Student38(String clsNum,String name,int avgscore,int xuefen,String country){
                this.clsNum=clsNum;
                this.name=name;
                this.avgscore=avgscore;
                this.xuefen=xuefen;
                this.country=country;
            }
       
            public String getClsNum() {
                return clsNum;
            }
            public String getName() {
                return name;
            }
            public int getAvgscore() {
                return avgscore;
            }
            public int getXuefen() {
                return xuefen;
            }
            public String getCountry() {
                return country;
            }

            public String show(){
                return ("clsNum="+clsNum+" name="+name+"  avgscore="+avgscore+" xuefen"+xuefen+"  country="+country);
            }
        }

        public static class Undergraduate38 extends Student38 {
            private String Specialty;

            Undergraduate38(){
            }
            Undergraduate38(String clsNum,String name,int avgscore,int xuefen,String coutry,String Specialty){
                super(clsNum,name,avgscore,xuefen,country);
                this.Specialty=Specialty;
            }
            public String getSpecialty(){
                return Specialty;
            }
            public String show(){
                return(super.show()+"Specialty="+Specialty);
            }
       }
        public static class Foreign38 extends Student38 {
            private String direction;

            Foreign38(){
            }
            Foreign38(String clsNum,String name,int avgscore,int xuefen,String country,String direction){
                super(clsNum, name, avgscore, xuefen, country);
                this.direction=direction;
            }

            public String getDirection(){
                return direction;
            }

            public String show(){
                return (super.show()+"   direction="+direction);
            }
        }
    }

  • 写回答

3条回答 默认 最新

  • 溪风沐雪 2022-04-11 16:58
    关注

    我按照题目要求和你的源码修改了一下,你参考着看一下吧

    public class TestApp38 {
        public static void main(String[] args) {
            Student[] students=new Student[4] ;
            students[0]=new Student("1001","张三",60);
            students[1]=new Undergraduate("1002","李四",90,20); 
            students[2]=new Undergraduate("1003","王五",80,50); 
            students[3]=new Graduate("1004","赵六",70,30,"Pakistan"); 
            for(Student student : students){ 
                System.out.println(student); 
            } 
        } 
    
        public static class Student {
            private String clsNum;
            private String name;
            private int avgscore;
    
            public Student(){
            }
    
            public Student(String clsNum,String name,int avgscore){
                this.clsNum=clsNum;
                this.name=name;
                this.avgscore=avgscore;
            }
       
            public String getClsNum() {
                return clsNum;
            }
            public String getName() {
                return name;
            }
            public int getAvgscore() {
                return avgscore;
            }
    
            public String toString(){
                return ("clsNum="+clsNum+" name="+name+"  avgscore="+avgscore);
            }
        }
    
        public static class Undergraduate extends Student {
            private int xuefen;
    
            Undergraduate(String clsNum,String name,int avgscore,int xuefen){
                super(clsNum,name,avgscore);
                this.xuefen=xuefen;
            }
            public int getXuefen(){
                return xuefen;
            }
            public String toString(){
                return(super.toString()+" xuefen="+this.xuefen);
            }
        }
        public static class Graduate extends Student {
            private int xuefen;
            private String country;
    
            Graduate(){
            }
            Graduate(String clsNum,String name,int avgscore,int xuefen,String country){
                super(clsNum, name, avgscore);
                this.xuefen=xuefen;
                this.country=country;
            }
    
            public int getXuefen(){
                return xuefen;
            }
            public String getCountry(){
                return this.country;
            }
    
            public String toString(){
                return (super.toString()+" xuefen="+this.xuefen+" country="+this.country);
            }
        }
    }
    

    运行结果:

    img


    另外给个建议,做为新手,代码最好是规整一点,好找问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月19日
  • 已采纳回答 4月11日
  • 修改了问题 4月11日
  • 创建了问题 4月11日

悬赏问题

  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM