java 构造函数和super

article/2025/10/20 5:38:52
package one;
class book
{book(){System.out.println("这是没有参数的父类的构造方法");}book(int i){System.out.println("有参数   父类的构造方法");}public void get(){System.out.println("book父类");}}
class dictionary extends book
{dictionary()  {System.out.println("子类 无参数 的构造方法哦");}	dictionary(int i){System.out.println("子类 有参数 的构造方法哦");}public void get() //子类覆盖父类的方法{System.out.println("子类dictionary.");}public void get(int pages)  /*get方法的重载, 重载是  方法名相同,参数表不同*/	{System.out.println("子类dictionary get方法重载.");}public void son(){System.out.println("这是子类新添加的方法,父类没有哦.");}
}public class haha { public static void main(String[] args) {// TODO Auto-generated method stubbook a= new book();System.out.println("-----------------");book e= new book(123);System.out.println("-----------------");book b= new dictionary(2);//多态  向上类型转换System.out.println("-----------------");dictionary c=new  dictionary(3);System.out.println("-----------------");dictionary d=new  dictionary();b.get();		 c.son();
//		b.son();   此句编译不通过/*(编程看左边,执行看右边)book b= new dictionary(2); 即编译器看的是引用变量,因为book类里面没有son这个方法*/}}

运行结果

这是没有参数的父类的构造方法
-----------------
有参数   父类的构造方法
-----------------
这是没有参数的父类的构造方法
子类 有参数 的构造方法哦
-----------------
这是没有参数的父类的构造方法
子类 有参数 的构造方法哦
-----------------
这是没有参数的父类的构造方法
子类 无参数 的构造方法哦
子类dictionary.
这是子类新添加的方法,父类没有哦.

1 调用子类构造函数的时候,会默认先调用父类的无参数构造方法,即相当于隐藏了一行代码 super();

2.在你程序没有写构造方法时候,编译器会默认帮你写一个无参数的构造方法,只不过方法里面没有内容
然而当你编写了构造函数的话,编译器就不会再帮你添加无参数的构造方法了,即使你只编写了有参数的构造方法。
如果你已经写了一个有参数的构造函数,并且你需要一个没有参数的构造函数,你必须自己动手写。
只要你有自己写的构造函数,不管是哪一种,这都会想是在跟编译器说:老兄,我自己的构造函数不用你管。


在这里插入图片描述

写了book(i),而没有写book()这种无参数的,编译器会认为你既然写了构造函数了,我就不管了,所以不会为你默认添加book() 而子类的构造函数是要先调用父类的,默认无参数的构造函数,此时我们因为没有定义这种,所以报错。

在这里插入图片描述

dictionary()通过super(i)调用父类构造函数。编译成功

dictionary(i)没有编译成功,是因为默认 子类构造函数 先调用无参数的父类构造函数,super() ,然后因为没有嘛,所以错误。

构造函数的作用
来初始化对象的状态。


http://chatgpt.dhexx.cn/article/ADDUofkG.shtml

相关文章

java构造函数使用方法总结

转载自:http://longying2008.iteye.com/blog/1535722 仅用作学习使用 使用构造器时需要记住: 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构…

Java 构造函数的详解

我们人出生的时候,有些人一出生之后再起名字的,但是有些人一旦出生就已经起好名字的。那么我们在java里面怎么在对象一旦创建就赋值呢? 1.构造方法的作用: 构造方法作用:对对象进行初始化. 如图: 2.构造函…

java构造函数的调用

一、使用this关键字 构造函数的调用,需要使用this关键字 this(); //调用无参构造函数Food() this(name); //调用有参构造函数Food(String name)作用: 在一个构造函数中调用另一个构造函数,主要是为了增加代码的复用性。 …

java怎么写函数_java构造函数怎么写

java构造函数怎么写 发布时间:2020-06-29 11:50:19 来源:亿速云 阅读:114 作者:Leah java构造函数怎么写?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的…

java中的构造函数。

我们这篇文章说的是构造函数,那么它与我们平时写的函数有哪些不同呢?有很大的不同了。 特点:1函数名与类名相同 2不用定义返回值类型。 3不可以写return语句。 作用:给对象进行初始化。 注意:1默认构造函数的特点。 2多个构造函数是以重载的形式存在的…

Java构造函数(构造方法)的简介说明

转自: Java构造函数(构造方法)的简介说明 Java构造函数(构造方法) java中的构造函数是一种特殊类型的方法, 用于初始化对象。 Java构造函数在对象创建时被调用,调用构造函数时,它会创建一个对象,并返…

HED图像边缘检测-程序运行的问题解决方法

论文全名:[2015](HED_FCN)Holistically-Nested Edge Detection.pdf 代码下载地址:https://github.com/s9xie/hed 附上一篇个人认为写的比较好的论文笔记:http://blog.csdn.net/u012905422/article/details/52782615 注意事项: …

HID协议

转自:https://blog.csdn.net/zhoutaopower/article/details/82469665 1.简述 USB HID类是USB设备的一个标准设备类,包括的设备非常多。HID类设备定义它属于人机交互操作的设备,用于控制计算机操作的一些方面,如USB鼠标、USB键盘、…

图像处理——基于深度学习HED实现目标边缘检测

前言 使用传统的图像来检测目标边缘,受到干扰的因素太多了,而已鲁棒性不高,同样的参数,在这个环境下可以,换个环境就根本检测不到物体的边缘,或者把不是边缘的也检测进去了。ICCV2015有人提出了整体嵌套边…

边缘检测系列3:【HED】 Holistically-Nested 边缘检测

引入 除了传统的边缘检测算法,当然也有基于深度学习的边缘检测模型 这次就介绍一篇比较经典的论文 Holistically-Nested Edge Detection 其中的 Holistically-Nested 表示此模型是一个多尺度的端到端边缘检测模型 相关资料 论文:Holistically-Nested…

【论文阅读】(边缘检测相关)HED:Holistically-Nested Edge Detection

论文地址:https://arxiv.org/pdf/1504.06375.pdf Holistically:整体 Nested:嵌套的 参考博客:深度学习论文笔记之(一)HED边缘检测_大青上的博客-CSDN博客_深度学习边缘检测 边缘检测之HED_年轻即出发&#…

深度学习hed边缘检测模型之裂缝检测

裂缝检测原本采用分割模型较多,目前我测试了采用hed的裂缝检测;代码采用这个版本的代码是最简洁易懂的,https://github.com/senliuy/Keras_HED_with_model 环境:win10 keras2.2.4 hed.py from keras.layers import Conv2D, …

hed-训练自己的数据集

1、准备自己训练的原图和边缘图,边缘图制作参考https://blog.csdn.net/weixin_38517705/article/details/84670150 2、将制作好的数据集放在.../rcf-master/data下,我是分为两个文件夹,一个存放原图(hed)、一个存放边…

HED边缘检测

主要是“Holistically-Nested Edge Detection ”这一篇文章 code download:https://github.com/s9xie/hed 这篇边缘检测主要是基于caffe框架下的,所以要实现的时候要在自己电脑上编译caffe,caffe安装编译可以看本人的博客:http:…

【边缘检测】HED论文笔记

论文全称:Holistically-Nested Edge Detection 亮点 1、基于整个图像的训练和预测 2、多尺度和多水平的特征学习 3、基于FCN和VGG 改进 4、通过多个side output输出不同scale的边缘,然后通过一个训练的权重融合函数得到最终的边缘输出。可以solve e…

HED测试单张图片示例

论文全名:[2015](HED_FCN)Holistically-Nested Edge Detection.pdf 代码下载地址:https://github.com/s9xie/hed 附上一篇个人认为写的比较好的论文笔记:http://blog.csdn.NET/u012905422/article/details/52782615 关于HED的训练在另一篇博客…

【深度学习HED边缘检测网络】

源码: 这个版本的代码是最简洁易懂的,https://github.com/senliuy/Keras_HED_with_model 数据集: 链接:https://pan.baidu.com/s/13qStI9DP1mbt9JallQFpPg 提取码:wbfi HED(Holistically-Nested Edge Detection) …

深度学习边缘检测 HED 训练自己的数据

深度学习边缘检测 HED 训练自己的数据 数据集制作 使用labelme标注,选择lineStrip(线条束)标注 生成json文件。 之后使用批量处理脚本将json文件转为边缘数据集。具体过程如下: 首先将所有的json文件放入一个文件夹内&#xff0c…

《HED:Holistically-Nested Edge Detection》原文翻译

注:本人水平有限,如有错误,恳请指正,谢谢 源代码和预训练模型获取地址: https://github.com/s9xie/hed 论文地址:https://arxiv.org/abs/1504.06375 Holistically-Nested Edge Detection 摘要 本文研究了…

边缘检测-HED-RCF

(HED)Holistically-Nested Edge Detection 解决问题 ICCV2015的文章。主要解决两个问题: (1)基于整个图像的训练和预测; (2)多尺度和多水平(多层次)的特征学习。该算法通过深度学习模型,完成了…