子类有其自己的构造函数,如果在子类中调用父类的函数的话只是但做一般的类的构造函数调用的。比如在B是A的子类,B()是自己的构造函数,它可以使用A的构造函数A(),但A()不是B的构造函数,这是我的看法,如果有错,请大家指导。
解决方案 »
- 解释一下这段代码的执行过程,考察for语句和静态函数
- 求助,如何用java实现小游戏 (剪刀石头布)
- 100分:求个JAVA声明格式,无不良记录 嘿嘿
- 在线等 JAVA分行读取文件,要求回车一下读取一行
- 如何,把SQL文中的表名提取出来
- JBuilder2006中生成exe文件的问题
- 如何获取一个包含了汉字,字母,标点符号的字符串的字节数,很多分
- 如何获得系统目录啊?各位请帮忙!!!谢谢!!在线等!
- 如何让Java GUI程序最小化后缩到系统栏里
- 写了一段小代码输出验证码图片,出现了问题。请大神指点
- 怎么使jbuilder的编译加上参数 -target 1.1
- 请教在声明文件的输出流时,可以用相对路径的么???谢谢
class A{
public A(){
...;
} public static void calculate(int m){
}
}
class B extends A{
public B(){
...;
//当然也可以如下调用A的Constructor
super();
} public static void calculateWage(int m){
//可以直接调用
calculate(m) + 2;
}
}
public int aa = 1;
public Test1(){
System.out.println(this.aa);
aa = 2;
}
}
class Test2 extends Test1{
public Test2(){
System.out.println(this.aa);
aa = 3;
}
public static void main(String[] args) {
Test2 test2 = new Test2();
}
}
运行得到的结果跟“一个子类从父类继承所有的方法和变量,但它不继承构造函数”是否矛盾。谢谢大家参与.
public B(){
...;
//当然也可以如下调用A的Constructor
super();
~~~~~~~~~~~~~
}
}此种用法好像有所误导
父类构造函数的调用("super();")只能写在子类构造函数的第一句上,否则编译不会通过
如果你对JAVA中类的加载和构造有兴趣的话
请先阅读 Thinking in JAVA 2nd 的前7章,讲的不错,翻译的也不错 ^_^
你举的例子是Test2调用了Test1的构造方法,而不是继承了父类的构造方法,我是这么理解的
但是,所谓构造函数,是相对类名来定义的,子类和父类的名字不一样的,所以父类的构造函数在子类就不能称其为子类的构造函数了。所以,
那句话是不对的。
但是,所谓构造函数,是相对类名来定义的,子类和父类的名字不一样的,所以父类的构造函数在子类就不能称其为子类的构造函数了。
agree!!!!!!!