java this() super(),Java super()和this()的区别用法及代码示例
由您决定是否使用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()的区别用法及代码示例相关推荐
- java string.join找不到_Java String join()用法及代码示例
java.lang.string.join()方法使用定界符将给定元素连接起来并返回连接的字符串.请注意,如果元素为null,则将添加null.自JDK 1.8开始,java字符串中包含join()方 ...
- java的round函数怎么用_Java Math round()用法及代码示例
java.lang.Math.round()是内置数学函数,它返回最接近参数的long.通过将1/2相加,将结果四舍五入为整数,再加上1/2后取结果的下限,并将结果强制转换为long类型. 如果参数为 ...
- java hashtable 遍历_Java HashTable forEach()用法及代码示例
Hashtable类的forEach(BiConsumer)方法对哈希表的每个条目执行BiConsumer操作,直到已处理完所有条目或该操作引发异常. BiConsumer操作是按迭代顺序执行的哈希表 ...
- Java 远程控制全实现:高效解决远程控制场景,附代码示例
JAVA实现远程控制(JAVA in RemoteControl)可以通过Java Remote Method Invocation(Java RMI)或Java Socket编程实现. 1. Jav ...
- java实现stack search_Java Stack search()用法及代码示例
Java中的java.util.Stack.search(Object element)方法用于搜索堆栈中的元素并获取其与顶部的距离.此方法从1开始而不是从0开始计数位置.位于堆栈顶部的元素被视为在位 ...
- java range对象_Java LocalTime range()用法及代码示例
LocalTime类的range()方法用于获取最小值和最大值形式的字段范围,并将该字段作为参数传递给此方法.此方法的返回值是该字段的ValueRange对象,并且该方法仅对LocalTime对象支持 ...
- java doublebuffer_Java DoubleBuffer clear()用法及代码示例
java.nio.CharBuffer类的clear()方法用于清除此缓冲区.在清除此缓冲区时,需要进行以下更改: 位置设置为零 限制设置为容量 商标被丢弃. 用法: public final Dou ...
- JAVA中throw用法例子,Java Optional orElseThrow()用法及代码示例
Java中的java.util.Optional类的orElseThrow()方法用于获取此Optional实例(如果存在)的值.如果此Optional实例中不存在任何值,则此方法将引发从指定供应商生 ...
- 【Android FFMPEG 开发】C++ 回调 Java 方法 模板 ( JavaVM *vm | JNIEnv *env | jobject instance | 引用类型 | 模板代码示例 )
文章目录 I . Native 调用 Java 方法 II . JNIEnv *env 与 jobject instance III . JavaVM *vm IV . 局部引用 与 全局引用 分析 ...
最新文章
- Win8Metro(C#)数字图像处理--2.14Prewitt 边缘检测
- Redis - 事务
- 【BZOJ 3036】 3036: 绿豆蛙的归宿 (概率DP)
- 恢复SQL Server被误删除的数据(再扩展)
- 实模式与保护模式详解一:寄存器
- 从零开始学 Java - Spring 使用 Quartz 任务调度定时器
- 「五大常用算法」一文图解分治算法和思想
- 音视频技术开发周刊 | 195
- 【windows命令】windows系统常用cmd命令合集(持续更新中ing)
- 栈空间和堆空间的区别
- 机器人 林州重机_林州重机募资11亿布局油气和机器人项目
- [Objective-C语言教程]数组(14)
- 汉字字符特征提取器 ,提取发音特征、字形特征用做深度学习的特征
- emc测试e3软件系数导入,EMC测试标准
- 12个同父异母的孩子都有自闭症,简历造假的捐精者吸引了全球顶级专家
- mysql安装失败原因和解决方法
- 喜欢林肯公园(likin park)
- Eclipse 配置JDK
- 咨询_计算机屏幕_雾面屏;
- Iocomp Components Full Sources Product
热门文章
- Flutter代码锦囊---魔改进度条
- 用Dart搭建HTTP服务器(1)
- 一次性输血器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 跌落式封隔器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- beautifulsoup解析动态页面div未展开_Python爬虫 | 0xb 数据解析:PyQuery库
- java 调用 .net dll_c# – 如何从Java调用.NET dll
- 人均阅读18本,揭露2022全国职场人阅读报告
- 2022,火山引擎的云上第一“子”,为何是视频?
- “我辞退了一位学位学历造假的程序员“
- GitHub 热点速览 | 极客们都在玩这些 Terminal!