class A {
A() {
System.out.println("Inside A's constructor.");
}
}
// 创建A的以个子类.
class B extends A {
B() {
System.out.println("Inside B's constructor.");
}
}
// 创建另一个子类继承B.
class C extends B {
C() {
System.out.println("Inside C's constructor.");
}
}
class CallingCons {
public static void main(String args[]) {
C c = new C();
}
}
子类与父类之间构造函数的调用是怎么一回事,请高手解释下!
A() {
System.out.println("Inside A's constructor.");
}
}
// 创建A的以个子类.
class B extends A {
B() {
System.out.println("Inside B's constructor.");
}
}
// 创建另一个子类继承B.
class C extends B {
C() {
System.out.println("Inside C's constructor.");
}
}
class CallingCons {
public static void main(String args[]) {
C c = new C();
}
}
子类与父类之间构造函数的调用是怎么一回事,请高手解释下!
解决方案 »
- 通过jndi连接池,java对oracle的blob字段取出时会发生"java.lang.ClassCastException"错误,有什么解决方法嘛?
- jmf在linux下为什么会出现Cannot find a Player
- jar打包后getResource(...)不能获取外部的资源
- 请高手帮我调试一下关于管道的程序!
- 关于JXTA中MessageImpl类
- java.lang.NullPointerException是什么异常,什么情况下发生此异常
- 如何知道db2的端口号 我在jdbc时要用
- 主题:用java实现网络协议引擎遇到的问题
- 怎样将class文件转化为exe文件?
- 求救:哪位大侠有能把 .wav 变成 .au 的转换程序?
- 关于StringBuffer的一个小问题
- Date dd=new date(1000)为什么会输出这样的信息?
再创建类B继承类A,
再创建类C继承类B,
然后在CallingCons类里实例化类C,
因为类C继承了类B里的所有方法与父类的所有方法,
所以会打印出类A,类B,类C里的所有方法。
假如子类从写了父类的方法,想要调用父类被隐藏的方法就用Super。
以此类推。
你可以依次把各类的构造函数用注释符//屏蔽掉,然后测试一下结果。
例子:
class a{
a(){System.out.println("In a\n\n");}
}
class b extends a{
b(){System.out.println("In b\n\n");}
}
class c extends b{
c(){System.out.println("In c\n\n");}
}
public class test1
{
public static void main(String a[])
{
a a1=new a();
System.out.println("************************************");
b b1=new b();
System.out.println("************************************");
c c1=new c();
}
}
也就是说你的那个程序输出是:
Inside A's constructor;
Inside B's constructor;
Inside C's constructor;
要是析构函数的话是从子类到父类的顺序。