import java.io.*;
public class test
{
public static void main(String args[])
{
mytest myobject = new mytest("猪八戒",10);
System.out.println(myobject.name);
System.out.println(myin.ttt);
}
}
class mytest
{
static int ttt=99;
String name;
int age;
mytest(String na, int ag)
{this.name = na;
this.age = ag;
System.out.println("test");}
}
class myin extends mytest{
}
public class test
{
public static void main(String args[])
{
mytest myobject = new mytest("猪八戒",10);
System.out.println(myobject.name);
System.out.println(myin.ttt);
}
}
class mytest
{
static int ttt=99;
String name;
int age;
mytest(String na, int ag)
{this.name = na;
this.age = ag;
System.out.println("test");}
}
class myin extends mytest{
}
定义构造器的类可以被继承
不过构造器要在子类里重新定义,哪怕一样的也要重新定义
{
static int ttt=99;
String name;
int age;
mytest(String na, int ag)
{this.name = na;
this.age = ag;
System.out.println("test");}
}
看清楚你这个类的,你定义了自己的构造函数,所以Java语言机制的默认构造函数(就是不带参数的那个,关于这个默认构造函数访问级别请参阅书籍,我在这里不讲了)是不会自动生成的,但在你的子类中
class myin extends mytest{
}你没有定义构造函数的,所以那个默认的构造函数自动生成的,但是根据机制编译/运行的时候需要调用父类的默认构造函数的(因为你没有在子类构造函数明确调用),但是实际上根据上面说的,父类没有默认构造函数的,所以当然就错误了。解决就是,你要在子类构造函数中明确调用父类构造函数的,如果父类没有默认的构造函数的话。应该明白了吧。自己可以好好看书,理解一下这些基本的概念的。这才是基础
import java.io.*;
public class test
{
public static void main(String args[])
{
mytest myobject = new mytest("猪八戒",10);
System.out.println(myobject.name);
System.out.println(myin.ttt);
}
}
class mytest
{
static int ttt=99;
String name;
int age;
mytest(String na, int ag)
{this.name = na;
this.age = ag;
System.out.println("test");}
}
class myin extends mytest{
myin(String na,int ag){
super(na,ag);
}
}
这个就是调用弗雷的构造函数