首页 > 其他分享 >动手实验:继承条件下的构造方法调用

动手实验:继承条件下的构造方法调用

时间:2022-10-10 17:57:21浏览次数:57  
标签:调用 Parent 构造方法 Created 动手 Child Grandparent public

package test2;


class Grandparent 
{


    public Grandparent()
 	{

        	System.out.println("GrandParent Created.");
	
}


    public Grandparent(String string) 
	{

        	System.out.println("GrandParent Created.String:" + string);
	
 }

}



class Parent extends Grandparent
{


    public Parent()
	 {

        	//super("Hello.Grandparent.");

        	System.out.println("Parent Created");
	
       // super("Hello.Grandparent.");

	  }

}



class Child extends Parent 
{


    public Child()
	 {
	
        System.out.println("Child Created");

	  }

}



public class TestInherits 
{


    public static void main(String args[])
	 {

        	Child c = new Child();
	
  }

}

  

结果:

GrandParent Created.
Parent Created
Child Created

 

打开下面第一句的代码,

super("Hello.Grandparent.");

  

结果:

GrandParent Created.String:Hello.Grandparent.
Parent Created
Child Created

  

打开第二句代码,结果报错,Constructor call must be the first statement in a constructor

 

原因分析:

子类创建对象,调用构造方法时,首先如果未显式写出,则会默认调用父类的无参构造,如果显式的写出使用super调用父类的构造方法,注意:通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句,编译器会先进行对于父类构造方法的调用,如果不是第一条语句,则不符合。

 

标签:调用,Parent,构造方法,Created,动手,Child,Grandparent,public
From: https://www.cnblogs.com/ashuai123/p/16776624.html

相关文章

  • sendfile 系统调用
     Linux"零拷贝"sendfile函数中文说明及实际操作分析 Sendfile函数说明 #include<sys/sendfile.h>ssize_tsendfile(intout_fd,intin_fd,off_t*offset,siz......
  • Spring cloud alibaba--Feign微服务调用组件
    Springcloudalibaba--Feign微服务调用组件 https://blog.csdn.net/ZHANGLIZENG/article/details/119058973?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_rel......
  • 自己动手写ls命令——Java版
    自己动手写ls命令——Java版介绍在前面的文章Linux命令系列之ls——原来最简单的ls这么复杂当中,我们仔细的介绍了关于ls命令的使用和输出结果,在本篇文章当中我们用Java代......
  • qt调用vlc
     下载vlc-3.0.17-win321、vc头文件和库目录加上,引入库(附件依赖项)libvlc.liblibvlccore.lib2、#ifdef_WIN32#include<basetsd.h>typedefSSIZE_Tssize_......
  • OS进程取样器调用python3脚本处理jmeter接口加解密,sign鉴权
    1、jmeter脚本编写添加登录请求提取token    通过json提取器提取登录后token值,并设置为全局【方便后续夸线程调用token】    2、在需要sign鉴权,加解......
  • Jmeter使用beanshell加密,调用AES代码,生成jar包
    工作中需要对接口进行AES加密,找开发要来了加密的代码(如下),记录下具体的使用方法:新建一个AESUtil包,在里面新建一个类(建议类的名字也为AESUtil)。把下面的代码复制进去,注意,......
  • python调用c++的方法,加速运算
    cpp源代码#include"iostream"usingnamespacestd;classCalc{public:intadd(inta,intb);};intCalc::add(inta,intb){cout<<"收到参数为a,b:"<<a<......
  • java---一个类调用另一个类的属性或方法
    在一个类里面调用另一个类得方法,可以在这个类里面new一个要调用的那个类的对象,从而调用另一个类的方法,也可以用另一个类的对象作为形参 //在一个类里面访问另一个类的属......
  • 使用Java调用RestFul接口的几种方法
    使用Java调用RestFul接口的几种方法 1.HttpURLConnectionpublicStringpostRequest(Stringurl,Stringparam){StringBufferresult=newStringBuffer();......
  • 使用c调用python
    windowc调用python的原理大概是将python当做一个c++库来调用导入头文件将python的头文件复制到项目中,头文件在python安装目录中在vs项目属性中的vc++目录的包含目录添......