super()表示调用父类中的构造方法

1、子类继承父类,子类的构造方法的第一行,系统会默认编写super(),在调用子类的构造方法时,先调用父类的无参数构造方法

2、如果父类中只有有参数构造方法,那么子类继承父类时会报错,因为子类的构造方法在默认调用父类无参数构造方法super()不存在。

3.如果子类的第一行编写了this()、this(实参),因为this()也会占用第一行,所以此时就会将super()挤掉,就不会调用父类构造方法。

实例1.子类的构造方法会默认在第一行先调用父类无参数构造方法super()

//父类
public class Father
{ int id; public Father()
{
System.out.println("调用父类中的构造方法");
}
} //子类
public class Son extends Father
{
public Son()
{
System.out.println("调用子类构造方法");
} } //测试类
public class Test
{
public static void main(String[] args)
{
Son s = new Son();
} } //结果是:先调用父类无参数构造方法,在调用子类构造方法
 

实例2:父类中没有参数构造方法

//父类中编写有参数构造方法,覆盖无参数构造方法
public class Father
{ int id;
//定义有参数构造方法
public Father(int id)
{
System.out.println("调用父类中的构造方法");
}
} //子类继承父类
//因为父类中没有无参数构造方法,所以会子类继承父类时会报错
 

我们可以通过在子类中调用父类有参数构造方法来避免这种错误,

//定义父类,并且编写有参数构造方法覆盖无参数构造方法
public class Father
{ int id; //编写有参数构造方法覆盖无参数构造方法
public Father(int id)
{
System.out.println("调用父类中的构造方法");
}
} //定义子类
public class Son extends Father
{
public Son()
{ //在构造方法中调用父类有参数构造方法
super(10);
System.out.println("调用子类构造方法");
} } //编写test类 public class Test
{
public static void main(String[] args)
{
Son s = new Son();
} } 测试结果:
 

也可以在构造方法中调用本类中其他构造方法,来挤掉super()调用父类中无参数构造方法

//父类
public class Father
{ int id; //
public Father(int id)
{
System.out.println("调用父类中的构造方法");
}
} //子类
public class Son extends Father
{
//无参数构造方法
public Son()
{
//手动编写调用父类有参数构造方法
super(10);
System.out.println("调用子类构造方法");
} //有参数构造方法
public Son(int i)
{
//调用本类其他构造方法,挤掉super()
this();
System.out.println();
} }

super()调用父类构造方法的更多相关文章

  1. 关于继承中的super()调用父类构造方法

    super super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类. 每当你new一个子类对象的时候,子类对象都隐式内置了一个父类对象.所以说,为了那个内置的父类 ...

  2. 使用super调用父类的构造方法

    package com.bjpowernode.t02inheritance.c09; /* * 使用super调用父类的构造方法 */public class TestSuper02 { publi ...

  3. super关键字和调用父类构造方法

    表示父类对象的默认引用 如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法. 使用super调用父类方法 使用super调用父类的构造方法 调用构造方法 本类中调用另 ...

  4. java super关键字和调用父类构造方法

    表示父类对象的默认引用 如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法. 使用super调用父类方法 使用super调用父类的构造方法 调用构造方法 本类中调用另 ...

  5. [转]Java中子类调用父类构造方法的问题分析

    在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的? 答案如下:    当你new一个子类对象的时候,必须首先要new一个 ...

  6. 第7.22节 Python中使用super调用父类的方法

    第7.22节 Python中使用super调用父类的方法 前面章节很多地方都引入了super方法,这个方法就是访问超类这个类对象的.由于super方法的特殊性,本节单独谈一谈super方法. 一.su ...

  7. python使用super()调用父类的方法

    如果要在子类中引用父类的方法,但是又需要添加一些子类所特有的内容,可通过类名.方法()和super()来调用父类的方法,再个性化子类的对应函数. 直接使用类名.方法()来调用时,还是需要传入self为 ...

  8. [py]super调用父类的方法---面向对象

    super()用于调用父类方法 http://www.runoob.com/python/python-func-super.html super() 函数是用于调用父类(超类)的一个方法. clas ...

  9. Java -- 子类使用super调用父类的方法A,A 调用了方法B,子类也override方法B,那么super.A()最终调用到了子类的B方法

    public class SuperClass{ public void printA(){ System.out.print("SuperClass-printA"); prin ...

随机推荐

  1. blade 学习

    一.目录构造样式 . └── workspace ├── BLADE_ROOT ├── build64_release ├── client │   ├── BUILD │   └── client. ...

  2. leetcode974

    这道题目描述很清晰,直接两层循环,代码如下: class Solution(object): def subarraysDivByK(self, A: 'List[int]', K: int) -&g ...

  3. 把一个syn报文给rst掉

    下面展示一个极其简单的例子,看如何使用netfilter来将一个指定端口的syn报文给rst掉. //************************************************* ...

  4. Spring-boot中@ConfigurationProperties,@Value,@PropertySource

    1.利用@ConfigurationProperties获取配置的值,@ConfigurationProperties是springboot提供的基于安全类型的配置放置. application.pr ...

  5. Debian 安装 virtualbox

    首先增加源: echo "deb http://download.virtualbox.org/virtualbox/debian stretch contrib" > /e ...

  6. Sql Server数据库之多表查询

    一.连接查询 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 目的:实现多表查询操作 语法:From join_table join_type join_table[ON(join_con ...

  7. 文本建模、文本分类相关开源项目推荐(Pytorch实现)

    Awesome-Repositories-for-Text-Modeling repo paper miracleyoo/DPCNN-TextCNN-Pytorch-Inception Deep Py ...

  8. 64位的windows服务安装问题

    需要使用64位的安装exe文件才可以. @echo offC:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe -i &quo ...

  9. 实现CNN卷积神经网络

    以上是模型,下面是代码: import tensorflow as tf import numpy as np import time from tensorflow.examples.tutoria ...

  10. Masonry与AmazeUI结合实现瀑布流

    做一个图片列表展示,由于照片数量太多,决定用瀑布流来实现 由于之前没有接触过瀑布流,不知从何下手 百度一下大家都在用Masonry 官网 https://masonry.desandro.com/ 这 ...