最近在学习 继承 这一块
这一段代码是网上找的,是一个有问题的代码
然后我自己想修改一下
结果还是有问题
希望高手帮下忙!!public class student {
int num;
String name;
public student(int num,String name){
this.num=num;
this.name=name;
}
void show1()
{
System.out.println("姓名:"+name+"\n学号:"+num);
}
}class Univer extends student{
boolean marry;
void Univer(int num,String name,boolean b){
super(num,name);
marry=b;
}
void show2()
{
System.out.println("婚否:"+marry);
}
}
class ep{
public static void main(String args[]){
Univer stu01=new Univer(1234,"小强",false);
stu01.show1();
stu01.show2();
}
}
这一段代码是网上找的,是一个有问题的代码
然后我自己想修改一下
结果还是有问题
希望高手帮下忙!!public class student {
int num;
String name;
public student(int num,String name){
this.num=num;
this.name=name;
}
void show1()
{
System.out.println("姓名:"+name+"\n学号:"+num);
}
}class Univer extends student{
boolean marry;
void Univer(int num,String name,boolean b){
super(num,name);
marry=b;
}
void show2()
{
System.out.println("婚否:"+marry);
}
}
class ep{
public static void main(String args[]){
Univer stu01=new Univer(1234,"小强",false);
stu01.show1();
stu01.show2();
}
}
解决方案 »
- 什么情况能用到管道通信PipedInputStream和PipedOutputStream.
- 怎么把TXT文件的数据读出来?
- 高分征集JAVA核心技术(卷一,二)电子版
- 空异常空异常空异常空异常空异常
- 解决马上散分----字符编码问题高手请进!
- 急!求助,JAVA中如何同时创建多个进程??
- 哪位能告诉我这段代码的控件为什么不能显示出来???谢谢
- 2个应用的同步问题
- 为什么我的jb8总是保存不了jsp文件,以保存jsp文件的时候就出现com.borland.primetime.util.AssertionException:euc_cn
- 本论坛的"将贴子提前"功能是怎么实现的?是不是先删除,然后再插入?
- class反编后得到的java不再编译回去能用吗
- ajax 的流程是什么
define an explicit constructor
创建一个子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数),假如父类有带参数的构造函数,那么系统将不会给它创建无参数的构造函数,这时,子类在实例化的时候,因为找不到父类的默认构造函数,编译器将会报错,但如果在子类的构造函数中指定用父类的带参数的构造函数的时候,或者在父类中加一个无参数的构造函数,就不会报错。public class student {
int num;
String name;
public student(){}
public student(int num,String name){
this.num=num;
this.name=name;
}
void show1()
{
System.out.println("姓名:"+name+"\n学号:"+num);
}
}
这一行 : super(num,name);
报错:Constructor call must be the first statement in a constructor
但是,这一句已经是 构造函数的第一句了,我就不明白了
这一行: Univer stu01=new Univer(1234,"小强",false);
报错:The constructor Univer(int, String, boolean) is undefined
int num;
String name;
public Et(int num,String name){
this.num=num;
this.name=name;
}
void show1()
{
System.out.println("姓名:"+name+"\n学号:"+num);
}
}class Univer extends Et{
boolean marry;
Univer(int num,String name,boolean b){
super(num,name);
marry=b;
}
void show2()
{
System.out.println("婚否:"+marry);
}
}
public class Test{
public static void main(String args[]){
Univer stu01=new Univer(1234,"小强",false);
stu01.show1();
System.out.println();
stu01.show2();
}
}看一下,java基础,
boolean marry;
void Univer(int num,String name,boolean b){
super(num,name);
marry=b;
}
void show2()
{
System.out.println("婚否:"+marry);
}
}
这一个类无构造函数,这个类的构造函数应该如下:
public Univer(int num,String name,boolean b){
super(num,name);
marry=b;
}
public class student {
int num;
String name;
public student(int num,String name){
this.num=num;
this.name=name;
}
void show1() {
System.out.println("姓名:"+name+"\n学号:"+num);
}
}
class Univer extends student{
boolean marry;
void Univer(int num,String name,boolean b){
super(num,name);
marry=b; }
void show2() {
System.out.println("婚否:"+marry);
}
}
class ep{
public static void main(String args[]){
Univer stu01=new Univer(1234,"小强",false);
stu01.show1();
stu01.show2();
}
}
红色部分改为public Univer就行了。
void Univer(int num,String name,boolean b){
super(num,name);
marry=b;
}
上面这个不是构造方法
要改为
public Univer(int num,String name,boolean b){
super(num,name);
marry=b;
}
多看书,多练习,把基础巩固一下
3年前我也被这问题困扰过
继续努力啊,前途无量