java - Java 中继承的障碍

标签 java

我不明白下面的程序。我已经提到了我在代码中遇到的两个错误。但我无法理解原因

import java.io.*;
class sdata
{
    float per;
    int m,tm=0,i,n;

    sdata(int n)throws Exception
    {
       DataInputStream dis2=new DataInputStream(System.in);
       for(i=1;i<=n;i++)
       {
        System.out.print("enter marks of subject"+i);
        int m=Integer.parseInt(dis2.readLine());
        tm=tm+m;
       }
       per=tm/n;
    }
}

class disdata extends sdata
{
    //below line gives an error "constructor sdata in class xyz.sdata cannot be applied to given types required:int found:no arguments"

    disdata() throws Exception{             
      System.out.println("TOTAL MARKS OF SUBJECTS:"+tm);
      System.out.println("PERCENTAGE OF STUDENT:"+per);
    }

}
class sresult
{
    public static void main(String args[])throws  Exception
    {
       DataInputStream dis=new DataInputStream(System.in);
       int n=Integer.parseInt(dis.readLine());

       disdata objj=new disdata();
       //the below line creates an error saying "cannot find symbol" 
       objj.sdata(n);
    }
}

最佳答案

如果您的父类(super class)有一个重载参数构造函数,您的子类必须显式进行调用。

disdata() throws Exception{             
     super(some int vale youwanna pass);
            System.out.println("TOTAL MARKS OF SUBJECTS:"+tm);
        System.out.println("PERCENTAGE OF STUDENT:"+per);
    }

请记住,super() 应该是 disdata() 构造函数中的第一行

disdata objj=new disdata();
    //the below line creates an error saying "cannot find symbol" 
        objj.sdata(n);

构造函数不是方法。您试图使用 objj 调用构造函数 sdata(n) ,这是错误的。使用 new 运算符来调用它。 像:

disdata objj=new disdata(n);

关于java - Java 中继承的障碍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193116/

相关文章:

java - 通过java运行时和cygwin发送和接收多个ssh命令

java - 使用 maven surefire 插件运行多个测试类

java - BIRT 如何在html 报告中制作嵌入式图像图表?

java - 使 JScrollPane 对齐到顶部

java - 如何在 Javafx 中使用 Arraylist 填充表列

java - 如何使用Gradle从jar分离配置文件

java - 如何将 JTable 中的数据导出到 CSV

java - 如何将 Java 类从一个 Web 容器加载到另一个 Web 容器?

java - 使用不同的标准解析 Json 日期

java - 无法导入 edu.stanford.nlp - 斯坦福解析器存在 jython 问题