| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1073 人关注过本帖
标题:求助:运行出现一个问题,小弟无法解决
只看楼主 加入收藏
wushiyin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-10
收藏
 问题点数:0 回复次数:15 
求助:运行出现一个问题,小弟无法解决

这是一道用继承显示专业医生和非专业医生的信息题.

有个问题需要大家指导一下.
运行总是出现这种错误:Exception in thread "main" java.lang.NosuchMethodError:main


代码如下:
class Doctor
{

String name;
int idNumber;
String address;
Doctor(String name1,int id,String addr)
{
name=name1;
idNumber=id;
address=addr;
}
void show()
{
System.out.println("姓名:"+name);
System.out.println("编号:"+idNumber);
System.out.println("地址:"+address);
}
}
class NonSpecialist extends Doctor
{
NonSpecialist(){}
NonSpecialist(String name1,int id,String addr)
{
super(name1,id,addr);
}
void show()
{
super.show();
}
}
class Specialist extends Doctor
{
String zhuanye;
Specialist(){}
Specialist(String name1,int id,String addr,String zy)
{
super(name1,id,addr);
zhuanye=zy;
}
void show()
{
super.show();
System.out.println("专业:");
}
}
class Zhu
{
Zhu(){}
public static void main(String[] args)
{
Specialist s = new Specialist("张三",01,"四川省","医生");
System.out.println("专业医生");
s.show();
NonSpecialist n=new NonSpecialist("李四",02,"广东省");
System.out.println("非专业医生");
n.show();
}
}

请大家帮帮我!
我刚学没多久.

谢谢大家了!

搜索更多相关主题的帖子: 运行 
2007-09-10 11:57
wct
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-14
收藏
得分:0 

在类Doctor中加一个构造方法    doctor(){}
在NonSpecialist加载进内存时会调用父类的构造函数
此程序在编译的时候就应该有错  

2007-09-10 12:18
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
最好都写一个无参的构造方法,保险

I'm here, as always...
2007-09-10 12:24
wushiyin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-10
收藏
得分:0 
这是更改后的代码:
class Doctor
{

String name;
int idNumber;
String address;
Doctor(){}
Doctor(String name1,int id,String addr)
{
name=name1;
idNumber=id;
address=addr;
}
void show()
{
System.out.println("姓名:"+name);
System.out.println("编号:"+idNumber);
System.out.println("地址:"+address);
}
}
class NonSpecialist extends Doctor
{
NonSpecialist(){}
NonSpecialist(String name1,int id,String addr)
{
super(name1,id,addr);
}
void show()
{
super.show();
}
}
class Specialist extends Doctor
{
String zhuanye;
Specialist(){}
Specialist(String name1,int id,String addr,String zy)
{
super(name1,id,addr);
zhuanye=zy;
}
void show()
{
super.show();
System.out.println("专业:");
}
}
class Zhu
{
Zhu(){}
public static void main(String[] args)
{
Specialist s = new Specialist("张三",01,"四川省","医生");
System.out.println("专业医生");
s.show();
NonSpecialist n=new NonSpecialist("李四",02,"广东省");
System.out.println("非专业医生");
n.show();
}
}

还是一样的错误!
再请教.
2007-09-10 14:00
CONANLMN
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-9-3
收藏
得分:0 
构造函数的前面加个public试试,再不行把Zhu(){}
去掉
2007-09-10 14:23
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
奇怪嘛,你修改后的程序在我的电脑上运行没有问题的啊,我用的是Eclipse3.2

I'm here, as always...
2007-09-10 14:44
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
还有个方法就是把所有类的无参构造方法都去掉,只要你创建对象的时候不调用无参构造方法的话就可以,否则还是会出现找不到无参构造方法的错误

I'm here, as always...
2007-09-10 16:35
wct
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-14
收藏
得分:0 
我上面也没错   我用的是jbuilder
2007-09-10 22:25
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
收藏
得分:0 

给Doctor加个默认的构造方法就OK了 原因是如果子类的构造器没有显示的调用超类(父类)的构造器 则将自动调用超类默认的的构造器 如果超类没有不带参数的构造器 并在子类的构造器中又没有显示的调用超类的其他构造器 编译器就会报错


愛生活 && 愛編程
2007-09-10 23:14
wct
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-14
收藏
得分:0 
修改后的应该没问题
2007-09-11 09:10
快速回复:求助:运行出现一个问题,小弟无法解决
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017015 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved