由您决定是否使用super()或this(),因为如果我们不使用this()或super(),则默认情况下编译器会将super()用作构造函数中的第一条语句。

// Java program to illustrate super() by default

// executed by compiler if not provided explicitly

class Parent {

Parent()

{

System.out.println("Parent class's No " +

"argument constructor");

}

Parent(int a)

{

System.out.println("Parent class's 1 argument" +

" constructor");

}

}

class Base extends Parent {

Base()

{

// By default compiler put super()

// here and not super(int)

System.out.println("Base class's No " +

"argument constructor");

}

public static void main(String[] args)

{

new Base();

System.out.println("Inside Main");

}

}

Output:

Parent class's No argument constructor

Base class's No argument constructor

Inside Main

程序流程:

在main内部,我们有新的Base(),然后流程转到Base类的No参数构造函数。

之后,如果我们既不放置super()也不放置this(),则默认情况下编译器放置super()。

因此,流程转到Parent类的No arg构造函数而不是1个参数构造函数。

之后,它会显示父类的No参数构造函数。

之后,当Parent()构造函数完成时,流程又回到基类的No参数构造函数,并执行下一个SOP语句,即Base类的No参数构造函数。

完成此操作后,无参数构造器流程将再次返回main()并在main()内部打印其余语句,即在内部main

但是,如果明确指定,则可以在超级之前使用this()。

// Java program to illustrate super() put by

// compiler always if not provided explicitly

class Parent {

Parent()

{

System.out.println("Parent class's No " +

"argument constructor");

}

Parent(int a)

{

System.out.println("Parent class's one " +

" argument constructor");

}

}

class Base extends Parent {

Base()

{

this(10);

System.out.println("No arg const");

}

Base(int a)

{

this(10, 20);

System.out.println("1 arg const");

}

Base(int k, int m)

{

// See here by default compiler put super();

System.out.println("2 arg const");

}

public static void main(String[] args)

{

new Base();

System.out.println("Inside Main");

}

}

输出:

Parent class's No argument constructor

2 arg const

1 arg const

No arg const

Inside Main

java this() super(),Java super()和this()的区别用法及代码示例相关推荐

  1. java string.join找不到_Java String join()用法及代码示例

    java.lang.string.join()方法使用定界符将给定元素连接起来并返回连接的字符串.请注意,如果元素为null,则将添加null.自JDK 1.8开始,java字符串中包含join()方 ...

  2. java的round函数怎么用_Java Math round()用法及代码示例

    java.lang.Math.round()是内置数学函数,它返回最接近参数的long.通过将1/2相加,将结果四舍五入为整数,再加上1/2后取结果的下限,并将结果强制转换为long类型. 如果参数为 ...

  3. java hashtable 遍历_Java HashTable forEach()用法及代码示例

    Hashtable类的forEach(BiConsumer)方法对哈希表的每个条目执行BiConsumer操作,直到已处理完所有条目或该操作引发异常. BiConsumer操作是按迭代顺序执行的哈希表 ...

  4. Java 远程控制全实现:高效解决远程控制场景,附代码示例

    JAVA实现远程控制(JAVA in RemoteControl)可以通过Java Remote Method Invocation(Java RMI)或Java Socket编程实现. 1. Jav ...

  5. java实现stack search_Java Stack search()用法及代码示例

    Java中的java.util.Stack.search(Object element)方法用于搜索堆栈中的元素并获取其与顶部的距离.此方法从1开始而不是从0开始计数位置.位于堆栈顶部的元素被视为在位 ...

  6. java range对象_Java LocalTime range()用法及代码示例

    LocalTime类的range()方法用于获取最小值和最大值形式的字段范围,并将该字段作为参数传递给此方法.此方法的返回值是该字段的ValueRange对象,并且该方法仅对LocalTime对象支持 ...

  7. java doublebuffer_Java DoubleBuffer clear()用法及代码示例

    java.nio.CharBuffer类的clear()方法用于清除此缓冲区.在清除此缓冲区时,需要进行以下更改: 位置设置为零 限制设置为容量 商标被丢弃. 用法: public final Dou ...

  8. JAVA中throw用法例子,Java Optional orElseThrow()用法及代码示例

    Java中的java.util.Optional类的orElseThrow()方法用于获取此Optional实例(如果存在)的值.如果此Optional实例中不存在任何值,则此方法将引发从指定供应商生 ...

  9. 【Android FFMPEG 开发】C++ 回调 Java 方法 模板 ( JavaVM *vm | JNIEnv *env | jobject instance | 引用类型 | 模板代码示例 )

    文章目录 I . Native 调用 Java 方法 II . JNIEnv *env 与 jobject instance III . JavaVM *vm IV . 局部引用 与 全局引用 分析 ...

最新文章

  1. Win8Metro(C#)数字图像处理--2.14Prewitt 边缘检测
  2. Redis - 事务
  3. 【BZOJ 3036】 3036: 绿豆蛙的归宿 (概率DP)
  4. 恢复SQL Server被误删除的数据(再扩展)
  5. 实模式与保护模式详解一:寄存器
  6. 从零开始学 Java - Spring 使用 Quartz 任务调度定时器
  7. 「五大常用算法」一文图解分治算法和思想
  8. 音视频技术开发周刊 | 195
  9. 【windows命令】windows系统常用cmd命令合集(持续更新中ing)
  10. 栈空间和堆空间的区别
  11. 机器人 林州重机_林州重机募资11亿布局油气和机器人项目
  12. [Objective-C语言教程]数组(14)
  13. 汉字字符特征提取器 ,提取发音特征、字形特征用做深度学习的特征
  14. emc测试e3软件系数导入,EMC测试标准
  15. 12个同父异母的孩子都有自闭症,简历造假的捐精者吸引了全球顶级专家
  16. mysql安装失败原因和解决方法
  17. 喜欢林肯公园(likin park)
  18. Eclipse 配置JDK
  19. 咨询_计算机屏幕_雾面屏;
  20. Iocomp Components Full Sources Product

热门文章

  1. Flutter代码锦囊---魔改进度条
  2. 用Dart搭建HTTP服务器(1)
  3. 一次性输血器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  4. 跌落式封隔器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  5. beautifulsoup解析动态页面div未展开_Python爬虫 | 0xb 数据解析:PyQuery库
  6. java 调用 .net dll_c# – 如何从Java调用.NET dll
  7. 人均阅读18本,揭露2022全国职场人阅读报告
  8. 2022,火山引擎的云上第一“子”,为何是视频?
  9. “我辞退了一位学位学历造假的程序员“
  10. GitHub 热点速览 | 极客们都在玩这些 Terminal!