子类,父类默认构造函数及带参构造函数的调用

原创 2016年08月31日 16:46:26

*在子类,父类默认构造函数及带参构造函数的调用:
如下程序,在父类,子类中均存在两种构造函数,一种是无参的构造函数,用于给一些属性提供默认值,一种是直接初始化某些属性;在子类进行继承时,子类构造函数对父类进行引用:
1.父类构造函数必须放在子类构造函数的第一行。
2.当父类中不存在构造函数时,系统会为父类自动生成一个无参的构造函数,且在子类构造函数的第一行默认调用。也可手动进行调用。
3.当父类存在无参的构造函数时,在子类中的调用情况与2中一致
4.当父类中存在带参的构造函数时,系统就不会再为其生成无参构造函数,因此子类的构造函数中必须手动调用带参的构造函数,否则系统会默认想要调用无参构造函数,结果不存在,报错。因此我们知道:父类中可以不存在无参构造函数,但是在子类构造函数中必须手动调用带参构造函数,否则报错。
5.当子类不显示调用父类哪个构造函数时,系统默认调用父类无参构造函数
6.如果主程序调用子类带参构造函数,而子类构造函数没有指定父类构造函数的调用,默认调用父类无参构造函数。
7.在主程序对子父类构造函数进行调用时,默认均调用无参构造函数,除非指定带参构造函数。

class SuperClass{
private int age;
private String name;
public SuperClass(){
age=0;
name="aa";
}
public SuperClass(int age,String name){
this.age=age;
this.name=name;
}
public void getAge(){
System.out.println("年龄为:"+age);
}
public void getName(){
System.out.println("姓名为:"+name);
}
}

class ThisClass extends SuperClass{
public ThisClass(){
//super();
super(18,"java");
}
}

public class ClassMain{
public static void main(String[] args){
ThisClass tc=new ThisClass();
tc.getAge();
tc.getName();
System.out.println("Over!");
}
} 
版权声明:本文为博主原创文章,未经博主允许不得转载。

子类继承父类,构造函数的特点 super()

在对子类进行初始化时候,父类的构造函数一定会运行 因为子类的构造函数第一行里面有个隐式语句super();子类的所有构造函数默认第一行都有句super(); 子类调用父类构造函数super(参数),子...
  • da_shi_xiong
  • da_shi_xiong
  • 2016年04月11日 20:29
  • 878

C++ 子类继承带参的父类构造函数应该怎么写

参考:http://tieba.baidu.com/p/1167962877 一,父类没有写出构造函数, 子类的构造函数可以写成“任何”形式而不用顾及父类的构造函数。 例如:父类为CA,子类为C...
  • qq_26728227
  • qq_26728227
  • 2016年05月06日 16:54
  • 1930

何时子类必须显示调用父类带参构造函数

子类显示调用父类带参构造函数
  • yanghongche
  • yanghongche
  • 2017年01月19日 17:51
  • 1878

关于子类对象的构造函数和父类构造函数的执行顺序

我们分别为父类和子类添加显式的构造函数,代码如下 01 class Person 02     { 03         private ...
  • u013095889
  • u013095889
  • 2016年10月13日 10:36
  • 2162

C++中子类调用父类的有参构造函数

#include using namespace std; class A { public: int a; int b; A() { cout
  • sddyljsx
  • sddyljsx
  • 2013年06月23日 19:54
  • 15875

有参数的父类构造函数

有参数的父类构造函数 如果父类的构造函数有参数该怎么办?你能够传值进去吗?如果不行的话,则没有无参数构造函数的类将不能被继承。想象这个情景:所有的动物都有名字。所以Animal这个类有个...
  • linsheng9731
  • linsheng9731
  • 2013年08月16日 16:51
  • 928

子类调用父类默认构造函数

对文件名为Test.java的java代码描述正确的是() class Person { String name = "No name"; public Person(String n...
  • sszgg2006
  • sszgg2006
  • 2016年02月18日 09:04
  • 1499

关于父类没有缺省的构造函数时,子类如何建立构造函数

关于父类没有缺省的构造函数时,子类如何建立构造函数 我们都知道,在类定义了带参数的构造函数后,便不再提供默认构造函数,但是子类的构造函数需要父类的缺省构造函数才能定义,否则编译时将会出错,这时有两种...
  • u013899077
  • u013899077
  • 2014年05月25日 13:31
  • 917

子父类构造函数的特点

子父类中成员函数的特点。 当子父类都有构造函数时,发现结果为: fu constructor run zi constructor run 先执行了父类的构造函数,再执行子类的构造函数。 为...
  • John_boom
  • John_boom
  • 2017年05月11日 20:03
  • 215

子父类中的构造函数

/* super();调用父类构造函数 this();调用本类构造函数 当子类继承父类时会默认执行父类的构造函数super()和this()不能在同一行:因为super()和this()只能在第一行,...
  • a1813614187
  • a1813614187
  • 2016年03月11日 15:49
  • 205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:子类,父类默认构造函数及带参构造函数的调用
举报原因:
原因补充:

(最多只允许输入30个字)