1.子类无构造函数,超类无构造函数,创建的无参数的对象:

编译通过。

  class A
{ } class B extends A
{ }
public class Testeeer
{
public static void main(String [] args)
{
B b_01=new B();
}
}

2.子类有无参数构造函数,超类无构造函数,创建的无参数的对象:

运行结果:

调用了B的无参构造函数

  class A
{ }
class B extends A
{
public B()
{
System.out.println("调用了B的无参构造函数");
}
} public class Testeeer
{
public static void main(String [] args)
{
B b_01=new B(); }
}

3.子类无构造函数,超类有无参数构造函数,创建的无参数的对象:

运行结果:

调用了A的无参构造函数

  class A
{
public A()
{
System.out.println("调用了A的无参构造函数");
}
}
class B extends A
{ } public class Testeeer
{
public static void main(String [] args)
{
B b_01=new B(); }
}

4.子类有无参数构造函数,超类有无参数构造函数,创建的无参数的对象:

运行结果:

调用了A的无参构造函数

调用了B的无参构造函数

  class A
{
public A()
{
System.out.println("调用了A的无参构造函数");
}
}
class B extends A
{
public B()
{
System.out.println("调用了B的无参构造函数");
}
} public class Testeeer
{
public static void main(String [] args)
{
B b_01=new B(); }
}

5.子类无构造函数,超类无构造函数,创建的有参数的对象:

编译不成功:

  class A
{ } class B extends A
{ } public class Testeeer
{
public static void main(String [] args)
{ B b_02=new B("你好");
}
}

6.子类有无参数构造函数,超类无构造函数,创建的有参数的对象:

编译不成功:

  class A
{ } class B extends A
{
public B()
{
System.out.println("调用了B的无参构造函数");
}
} public class Testeeer
{
public static void main(String [] args)
{ B b_02=new B("你好");
}
}

7.子类无构造函数,超类有无参数构造函数,创建的有参数的对象:

编译不成功:

  class A
{
public A()
{
System.out.println("调用了A的无参构造函数");
}
} class B extends A
{ } public class Testeeer
{
public static void main(String [] args)
{ B b_02=new B("你好");
}
}

8.子类有无参数构造函数,超类有无参数构造函数,创建的有参数的对象:

编译不成功:

  class A
{
public A()
{
System.out.println("调用了A的无参构造函数");
}
} class B extends A
{
public B()
{
System.out.println("调用了B的无参构造函数");
}
} public class Testeeer
{
public static void main(String [] args)
{ B b_02=new B("你好");
}
}

9.子类有有参数构造函数,超类无构造函数,创建的有参数的对象:

编译成功;

运行结果:

 class A
{ }
class B extends A
{ public B(String mess)
{
System.out.println("调用了B的有参构造函数\n"+
"参数内容为:"+mess);
} } public class Testeeer
{
public static void main(String [] args)
{
B b_02=new B("你好");
}
}

10.子类有有参数构造函数,超类有有参数构造函数,创建的有参数的对象:

编译失败:

 class A
{
public A(String mess)
{
System.out.println("调用了A的有参构造函数\n"+
"参数内容为:"+mess);
}
}
class B extends A
{ public B(String mess)
{
System.out.println("调用了B的有参构造函数\n"+
"参数内容为:"+mess);
} } public class Testeeer
{
public static void main(String [] args)
{
B b_02=new B("你好");
}
}

11.子类有有参数构造函数(首行定义super),超类有有参数构造函数,创建的有参数的对象:

编译成功;

运行结果:

 class A
{
public A(String mess)
{
System.out.println("调用了A的有参构造函数\n"+
"参数内容为:"+mess);
}
}
class B extends A
{ public B(String mess)
{
super(mess);
System.out.println("调用了B的有参构造函数\n"+
"参数内容为:"+mess);
} } public class Testeeer
{
public static void main(String [] args)
{
B b_02=new B("你好");
}
}

12.子类有有参数构造函数,超类有有参数构造函数和无参数的构造函数,创建的有参数的对象:

编译成功;

运行结果:

 class A
{
public A(String mess)
{
System.out.println("调用了A的有参构造函数\n"+
"参数内容为:"+mess);
}
public A()
{
System.out.println("调用了A的无参构造函数");
}
}
class B extends A
{ public B(String mess)
{ System.out.println("调用了B的有参构造函数\n"+
"参数内容为:"+mess);
} } public class Testeeer
{
public static void main(String [] args)
{
B b_02=new B("你好");
}
}

13.子类有有参数构造函数,超类默认无构造函数,创建的有参数的对象:

编译成功;

运行结果:

 class A
{ }
class B extends A
{ public B(String mess)
{ System.out.println("调用了B的有参构造函数\n"+
"参数内容为:"+mess);
} } public class Testeeer
{
public static void main(String [] args)
{
B b_02=new B("你好");
}
}

1.一旦你在超类或者子类中定义了有参数的构造函数,那么子类和超类中系统默认提供的无参构造函数将不复存在。

2.在子类的构造函数构造前,一定要完成超类的构造函数构造的过程。(那么依据这样的惯性行为,主程序入口处创建的对象的两种类型(有参数或者无参数)将会直接决定子类所调用的构造函数类型(与对象的类型相同)(有参数或者无参数),但是在完成子类构造函数前,先要去完成超类的构造函数。)

2.1如果是无参数的对象创建:

2.1.1超类:默认                                子类:无参构造函数                                    运行:超类默认,子类无参构造

2.1.2超类:无参构造函数                     子类:默认                                               运行:超类无参构造函数,子类默认

2.1.3超类:默认                                子类:默认                                               运行:超类默认,子类默认

2.1.4超类:无参构造函数                     子类:无参构造函数                                    运行:超类无参构造函数,子类无参构造函数

2.2如果是有参数的对象创建:

2.2.1超类:有参构造数                         子类:有参构造函数{定义中首行super(形参)}        运行:超类有参构造数,子类有参构造函数

2.2.2超类:默认                                 子类:有参构造函数                                             运行:超类默认,子类有参构造函数

2.2.3超类:无参构造数                         子类:有参构造函数                                             运行:超类无参构造数,子类有参构造函数

2.2.4超类:有参构造和无参构造              子类:有参构造函数                                             运行:无参构造,子类有参构造函数

2.2.5超类:有参构造和无参构造              子类:有参构造函数{定义中首行super(形参)}         运行:超类有参构造,子类有参构造函数

JAVA构造函数在超类与子类定义鲁波总结的更多相关文章

  1. JAVA构造函数在超类和子类调用注意事项

    1.构造函数:        当子类继承一个父类时,构造子类时需要调用父类的构造函数,存在三种情况        (1),父类无构造函数或者一个无参数构造函数,子类若无构造函数或者有无参数构造函数,子 ...

  2. java构造函数是否可继承,以及子类构造函数可否不使用super调用超类构造函数

    问题一:java的构造函数能否被继承? 笔者初学java看的一本书说:“java的子类自然的继承其超类的“非private成员”. 通常java的构造函数被设置为public的(若你不写构造函数,ja ...

  3. Java核心技术第五章——1.类、超类、子类(2)

    继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译 ...

  4. Java核心技术第五章——1.类、超类、子类(1)

    1.定义子类: 关键字extends表明正在构造的新类派生与一个已存在的类.已存在的类称为超类.基类或父类:新类称为子类.派生类或孩子类.超类和子类是Java程序员最常用的两个术语(emmm~~我觉得 ...

  5. Java:【面向对象:类的定义,静态变量,成员变量,构造函数,封装与私有,this】

    本文内容: 什么是面对对象 类的定义与对象实例化 成员变量 成员变量的有效范围 成员变量的赋值 静态变量.方法与实例变量.方法 构造函数 封装与私有 this关键字 注:函数和方法是一样东西.[由于我 ...

  6. Core Java (十一) Java 继承,类,超类和子类

    Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报  分类: java(58) 读 ...

  7. Java 构造函数(抽象类中的构造函数) 和 加载

    博客分类: 面向对象设计的原则 与 概念   1. Java 的构造函数 与初始化块: a. 抽象类的构造函数 若果在父类中(也就是抽象类)中显示的写了有参数的构造函数,在子类是就必须写一个构造函数来 ...

  8. JavaScript 超类与子类 继承

    //超类和子类 继承的实现 function R(w, h) { var date = new Date(); this.width = w; this.height = h; this.create ...

  9. JS 超类和子类

    此篇由别的大神的博客与<javascript高级程序设计>一书整理而来 原博客地址:https://hyj1254.iteye.com/blog/628555 看到javascript高级 ...

随机推荐

  1. 每周荐书:Kotlin、分布式、Keras(评论送书)

    每周荐书:Kotlin.分布式.Keras(评论送书) 感谢大家对每周荐书栏目的支持,先公布下上周中奖名单 法式三文鱼 名优秀评论可以免费获得此书.   Kotlin实战 首著席卷而来 Android ...

  2. swift 3 发送 HTTP 请求函数

    private func HttpPost(requestURL:String, postString:String) -> [String : AnyObject] { return Http ...

  3. Iphone 消息通知(APNS)的3种方式 -- C# 和 nodejs

    发送 APNS 使用 p12 文件(C#) public static bool PushWithP12(string apnToken, string message) { _log.DebugFo ...

  4. phpstorm、webstorm配置less编译器

    1. node.js 安装包    https://nodejs.org/en/download/ 1) 安装js解析器node.js.直接下一步就ok了. 2) 将npm压缩包解压,找到里面的les ...

  5. IOS开发GCD小结

    0. Brief Introduction GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制.它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后 ...

  6. Java从入门到精通全套教程免费分享

    这是我自己早前听课时整理的Java全套知识,适用于初学者,也可以适用于中级进阶的人,你们可以下载,我认为是比较系统全面的,可以抵得上市场上90%的学习资料.讨厌那些随便乱写的资料还有拿出来卖钱的人!在 ...

  7. Oracle基本概念与数据导入

    Oracle基本概念 实例 一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成.一 ...

  8. BZOJ2152 聪聪可可 【点分治】

    BZOJ2152 聪聪可可 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问 ...

  9. Java 并发:volatile 关键字解析

    摘要: 在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性.可见性和有序性.只要有一条原则没有被保证,就有可能会导致程序运行不正确.volatile关键字 被用来保 ...

  10. JavaScript 定时任务多事件冲突问题

    var iCount = setInterval(ChangeTime, 3500);//3.5秒请求一次函数 function ChangeTime() { $.ajax({ type: " ...