java子类继承父类出现问题,求解?

这是子类源码:
import javax.swing.*;
import java.util.*;
public class xuesheng extends Citizen
{
final static int MAX=700;
final static int MIN=596;
int result;
String Student_No;
public xuesheng(String no,int res)
{
String str;
Student_No=no;
if(res>MAX||res<MIN)
{
str=JOptionPane.showInputDialog("请核对成绩:",String.valueOf(res));
result=Integer.parseInt(str);
}
else result=res;
}
public void display()
{
System.out.println(this.Student_No+" "+this.result);
}
public static void main(String[] args)
{
xuesheng s1,s2;
s1=new xuesheng("201",724);
s2=new xuesheng("202",659);
s1.display();
s2.display();
System.exit(0);
}
}
下面是父类源码:
import java.util.*;
public class Citizen
{
static String name;
String alias;
String sex;
Date birthday;
String homeland;
String ID;
public static String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
public void displayAll()
{
System.out.println("姓名:"+getName());
System.out.println("别名:"+alias);
System.out.println("性别:"+sex);
System.out.println("身份标认识:"+ID);
System.out.println("出生地:"+homeland);
System.out.println("出生:"+birthday.toLocaleString());

}
public Citizen(String name,String alias,String sex,Date birthday,String homeland,String ID)
{
this.name=name;
this.alias=alias;
this.sex=sex;
this.birthday=birthday;
this.homeland=homeland;
this.ID=ID;
}
public static void displayAll(String name)
{
System.out.println("名字:"+name);
}
public Citizen(String name)
{
this.name=name;
}
}
问题出现在子类源码的
public xuesheng(String no,int res)
{//(问题出错处)
String str;
Student_No=no;
if(res>MAX||res<MIN)
{
str=JOptionPane.showInputDialog("请核对成绩:",String.valueOf(res));
result=Integer.parseInt(str);
}

父类增加一个空白构造函数就行了或者增加一个

public Citizen (String no, int res) {}这样的构造方法。

package com.cxz;

import javax.swing.*;
import java.util.*;

public class Xuesheng extends Citizen {
final static int MAX = 700;
final static int MIN = 596;
int result;
String Student_No;

public Xuesheng(String no, int res) {
String str;
Student_No = no;
if (res > MAX || res < MIN) {
str = JOptionPane.showInputDialog("请核对成绩:", String.valueOf(res));
result = Integer.parseInt(str);
} else
result = res;
}

public void display() {
System.out.println(this.Student_No + " " + this.result);
}

public static void main(String[] args) {
Xuesheng s1, s2;
s1 = new Xuesheng("201", 724);
s2 = new Xuesheng("202", 659);
s1.display();
s2.display();
System.exit(0);
}
}

// 下面是父类源码:
public class Citizen {
static String name;
String alias;
String sex;
Date birthday;
String homeland;
String ID;
//在这增加一个空白构造方法否则子类无法自定义构造方法!
public Citizen() {

}
//或者增加一个这样的构造方法.
public Citizen (String no, int res) {

}

public static String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public void displayAll() {
System.out.println("姓名:" + getName());
System.out.println("别名:" + alias);
System.out.println("性别:" + sex);
System.out.println("身份标认识:" + ID);
System.out.println("出生地:" + homeland);
System.out.println("出生:" + birthday.toLocaleString());

}

public Citizen(String name, String alias, String sex, Date birthday, String homeland, String ID) {
this.name = name;
this.alias = alias;
this.sex = sex;
this.birthday = birthday;
this.homeland = homeland;
this.ID = ID;
}

public static void displayAll(String name) {
System.out.println("名字:" + name);
}

public Citizen(String name) {
this.name = name;
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-05
请修改为:
public xuesheng(String no, int res) {
super(no);
String str;
Student_No = no;
if (res > MAX || res < MIN) {
str = JOptionPane.showInputDialog("请核对成绩:", String.valueOf(res));
result = Integer.parseInt(str);
} else
result = res;
}

------------------------------------------------
或者在父类Citizen中也增加个同参数的构造方法
public Citizen (String no, int res){}
第2个回答  2013-08-05
str还没new出来吧,改成string str = new string()试试
第3个回答  2013-08-05
请贴出logcat的错误提示

java 父类中有一个protect的方法,子类继承父类,实现那个方法报错,必须...
你好 这里首先要明白一点 子类重写或实现父类 方法时 权限一定要大于 父类 常用权限 public>protected>private protected修饰的方法 只能够被其子类 访问到 而子类必须要大于等于这个权限 所以子类 可选 protected和public 如果 这个子类要被人调用的话 而自身又不会再被继承的话 那么就...

关于Java 的继承问题,子类会继承父类的哪些东西?
1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会...

java关于子类和父类构造方法的关系,犯迷糊!!
1、父类中没有显式定义任何构造方法,此时父类中实际有一个默认的无参数构造方法。这时,在子类中显式定义任何构造方法时,可以不用使用super调用父类的默认方法。2、父类中显式定义了默认的无参数构造方法,那么子类可以定义任意的构造方法,而不必使用super调用父类的构造方法 3、父类中显示定义了构...

java 里面 为什么子类继承父类的时候class前面不能加访问修饰符public...
类(class)的修饰符只能是缺省,public, abstract , final 不能是private 在继承的时候要看父类是什么样的,如果父类是final的,那就不能用public修饰子类了 ,因为不能继承该类

Java中子类能够继承父类的private属性或方法吗
子类继承父类,子类拥有了父类的所有属性和方法。程序验证,父类的私有属性和方法子类是无法直接访问的。当然私有属性可以通过public修饰的getter和setter方法访问到的,但是私有方法不行。假设:子类不能够继承父类的私有属性和方法 那么:分析内存后,会发现,当一个子类被实例化的时候,默认会先调用父类...

在java中子类若要继承父类,需要使用的关键字是什么
关键字是extends,语法结构:[修饰符] class <子类类名> <父类类名>{ ···\/\/类体定义 } super 是用来指明调用的是父类方法或指明操作的是父类的属性,而不是被子类覆盖的成员方法或被子类隐藏的属性。this代表的是当前对象自身。接口的定义的关键字是interface。实现的关键字是implements ...

java 中子类继承父类的字段时,占用的是同一块内存还是父类和子类对象...
java语言中的对象采用的堆和栈的形式来存放,例如 Father f = new Father();f存放在栈中,其实只是一个堆内存的地址,真正地对象保存在此地址所指向的堆内存中。所以你的答案就显而易见了,Father f = new Father(); Child c = new Child();这里Father是父类,Child是子类,f和c是两个不...

JAVA子类继承了父类,那么子类怎么调用父类的方法?
对于已覆盖的方法来说,例如Child是Parent的子类,而且,Child和Parent都有个toString()方法,也就是说,Child覆盖Parent的toString()方法。如果child要调用Parent的toString()方法,只需要把child强制转换为Parent就可以,也就是(Parent)child.toString(),这样就是调用其父类的toString()方法。如果不是覆盖...

JAVA中 子类与父类构造方法的关系 个人理解
编写JAVA作业时在继承的环节发现了一些错误,希望总结一些规律:(以下全部属于自己归纳,可能有问题)一句话概括就是:子类一定会调用(不是继承)父类的构造方法!即遵循一个原则:子类的构造一定是在父类已构造的基础上!这句话要分为几种情况来理解(下面只讨论父类有构造函数):子类构造函数自动调用...

java中子类继承父类后,子类就能调用父类的方法吧?,为啥我写的子类不...
老子能调儿子。儿子没那么大能力。。是父类引用指向子类对象后,所说的父类引用可以调用子类的具体方法解决问题。方法要执行就要有对象,子类对象从来不能调用父类对象的方法,只能说子类对象里有父类对象的继承来的方法,实际调用的还是子类的方法,由于继承,所以默认有父类的非私有方法。

相似回答