JAVA构造函数在超类与子类定义鲁波总结
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构造函数在超类与子类定义鲁波总结的更多相关文章
- JAVA构造函数在超类和子类调用注意事项
1.构造函数: 当子类继承一个父类时,构造子类时需要调用父类的构造函数,存在三种情况 (1),父类无构造函数或者一个无参数构造函数,子类若无构造函数或者有无参数构造函数,子 ...
- java构造函数是否可继承,以及子类构造函数可否不使用super调用超类构造函数
问题一:java的构造函数能否被继承? 笔者初学java看的一本书说:“java的子类自然的继承其超类的“非private成员”. 通常java的构造函数被设置为public的(若你不写构造函数,ja ...
- Java核心技术第五章——1.类、超类、子类(2)
继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译 ...
- Java核心技术第五章——1.类、超类、子类(1)
1.定义子类: 关键字extends表明正在构造的新类派生与一个已存在的类.已存在的类称为超类.基类或父类:新类称为子类.派生类或孩子类.超类和子类是Java程序员最常用的两个术语(emmm~~我觉得 ...
- Java:【面向对象:类的定义,静态变量,成员变量,构造函数,封装与私有,this】
本文内容: 什么是面对对象 类的定义与对象实例化 成员变量 成员变量的有效范围 成员变量的赋值 静态变量.方法与实例变量.方法 构造函数 封装与私有 this关键字 注:函数和方法是一样东西.[由于我 ...
- Core Java (十一) Java 继承,类,超类和子类
Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报 分类: java(58) 读 ...
- Java 构造函数(抽象类中的构造函数) 和 加载
博客分类: 面向对象设计的原则 与 概念 1. Java 的构造函数 与初始化块: a. 抽象类的构造函数 若果在父类中(也就是抽象类)中显示的写了有参数的构造函数,在子类是就必须写一个构造函数来 ...
- JavaScript 超类与子类 继承
//超类和子类 继承的实现 function R(w, h) { var date = new Date(); this.width = w; this.height = h; this.create ...
- JS 超类和子类
此篇由别的大神的博客与<javascript高级程序设计>一书整理而来 原博客地址:https://hyj1254.iteye.com/blog/628555 看到javascript高级 ...
随机推荐
- 迭代器、foreach循环、泛型集合
集合的迭代 语法:Iterator<Object> it=集合.iterator(); while(it.hasNext()){ Object obj=it.next(); } is.ha ...
- 监控摄像机常识:宽动态 (WDR)介绍和理解
安装和使用监控摄像机经常会遇到强光问题. 因为我们不可能灵活选择摄像机的安装位置, 解决或者处理强光是一个无法避免的问题. 不管是由反光材质或者灯源造成此反光, 解决问题的方案来自于摄像机支持的一个特 ...
- 开源一款ftp软件——filezilla
filezilla是一款高性能ftp/sftp文件工具,关于它的具体的介绍可参见其官网:https://www.filezilla.cn/.其原作者是Tim Kosse (tim.kosse@file ...
- Linux下升级安装Python-3.6.2版本
本文主要介绍在Linux(CentOS)下将Python的版本升级为3.6.2的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的 ...
- Hello Pythoner!
首先,欢迎你来到pyer的博客,希望你能有所收获! 然后,pyer之前学C#(原博客地址:初行-博客园),后来转的Python,目前从事服务端研发工作. 最后,相逢便是缘,如果看过pyer的博客后有什 ...
- 使用css固定table第一列
.table{width:100%;overflow-x: scroll;background-color:#7c95b5;} .fixedTable{width:160%;text-align: c ...
- HihoCoder 1033交错和(数位DP第三题)
(写挂了,有空再补) 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an - 1,定义 ...
- Jsp邮件找回密码全攻略
[来源网络 http://www.2cto.com/kf/201502/376374.html] 一般大型网站我们登录的时候,密码忘了都有个功能可以找回密码. 细数下大致的方法: 1.直接把密码发送 ...
- Java--数组转成list,list转数组
数组转成list: 方法一: String[] userid = {"aa","bb","cc"}; List<String> ...
- 《DSP using MATLAB》示例Example 6.16、6.17