第一 所有的类都有构造方法
1如果程序员没有给类显式的定义构造方法,则系统默认为该类定义一个默认的无参构造方法。
2如果程序员定义的类中有若干有参构造方法,则系统不再为该类定义无参构造方法。
第二 子类不能继承父类的构造方法
第三 子类在创建时,必须默认、直接或间接的调用父类的构造方法,以使父类内容先于子类创建和初始化
1如果父类未定义任何构造方法(系统会定义一个默认的无参构造方法)或者定义的构造方法中有一个是无参构造方法,则对子类构造方法没有影响。因为创建子类时会默认调用父类的无参构造方法。
例如:
public class ExtendsTest { public static void main(String[] args) { new Child1(); new Child2(); } } //父类中没有构造方法 class Parent{ String name; public void setName(String name){ this.name = name; } public void print(){ System.out.println("name=="+name); } } class Child1 extends Parent{ Child1(){ //子类默认调用父类的无参构造方法 } } class Child2 extends Parent{ Child2(){ super();//子类显示调用父类的构造方法 } }
2如果父类定义有若干有参构造方法,但没有定义无参构造方法则,子类构造方法中必须使用“super(参数)”的形式,直接调用父类构造方法;或者,在子类构造方法中调用“this(参数)”的形式间接调用父类构造方法。
例如:
public class ExtendsTest { public static void main(String[] args) { new Child(); new Child("李四"); } } //父类中没有无参构造方法,只有若干有参构造方法 class Parent{ Parent(String name){ } Parent(String name,int age){ } } class Child extends Parent{ //构造方法1 Child(String name){ // super();这是错误的,因为父类没有无参构造方法 super(name,30);//直接调用父类的有参构造方法 } //构造方法2 Child(){ this("张三");//间接调用父类的构造方法,因为“构造方法1”中有对父类构造方法的调用 } }
注意:this(参数)或者super(参数),这两个对构造方法的调用语句必须放在构造方法中,而且是第一句。
相关推荐
c++派生类继承构造函数方法!!!!!!!!!!!
第十章 C#继承 派生类 派生类的构造方法.docx
Java继承时构造函数的调用, java面向对象特征: 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...
Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 ...2、调用类的构造方法时先调用父类的构造方法,在调用子类的构造方法 3、类初始化时,先初始化类的属性成员,在执行构造方法。
java中的继承(子类调用父类构造方法还不懂).doc
day09_09_继承中构造方法的访问特点
C#的基础语法, 类与对象,继承, 方法,构造方法等
在本文里我们给大家分享一篇关于Python 子类继承父类构造函数的相关知识点内容,需要的朋友们跟着学习下。
Java提升学习(二):构造方法,类的继承,封装 一、构造方法 类有一种特殊的成员方法叫做构造方法,构造方法与类同名,在创建对象时,会自动调用类的构造方法。 构造方法没有返回类型,更不能定义为void,不可加...
一个构造方法,无参数,在此构造方法中初始化dogName,dogAge 说明二:关于SmallDog 继承Dog,不添加任何属性和方法 最后,在测试类中的main方法中生成SmallDog类的对象,访问属性dogName和dogAge,并打印出他们的值...
//调用父类的构造方法 x=5;//super( ) 要放在方法中的第一句 System.out.println("in SubClass :x="+x); } void doSomething( ) { super.doSomething( ); //调用父类的方法 System.out.println("in ...
编写Car 小汽车 类继承于Vehicles类 增加int型成员属性seats 座位 还应增加成员方 法showCar 在控制台显示小汽车的信息 并编写构造方法。 编写Truck 卡车 类继承于Vehicles类 增加float型成员属性load 载重 还应...
需要完成的任务 编写主题类、回复类,按要求完成如下功能: (1)主题类继承帖子类,并增加属性:主题id、版块id (2)回复类继承帖子类,并增加属性:回复id、主题id ...(3)会使用super关键字调用父类构造方法
内容为本人在学习java构造方法及继承部分时整理的笔记,内容为构造方法及继承基础知识
这篇文章将介绍如何在Python中使用继承类重写方法。 在Python中,我们可以使用关键字"class"来定义一个类。下面是一个简单的示例: ``` class Animal: def __init__(self, name): self.name = name def speak(self):...
(3) 使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类),教师教师工资由基本工资+级别工资+工龄工资+课时工资构成;工人工资由基本工资+级别工资+工龄工资+奖励工资构成 (4) 编写同名...
定义抽象类以及抽象方法,构造方法,将子类1定义为抽象类,子类2继承子类1,子类2重写抽象方法。用以帮助理解多重继承、抽象方法重写调用、super、this关键字使用、构造方法、重载这几个的知识点
1:掌握单继承和多继承下派生类的定义方法,理解基类成员在不同的继承方式下不同的访问属性。 2:正确定义派生类的构造函数与析构函数,理解定义一个派生类对象时构造函数、析构函数的调用次序。 3:理解同名冲突的...
这篇文章将介绍如何在Python中使用继承类重写方法。 在Python中,我们可以使用关键字"class"来定义一个类。下面是一个简单的示例: ``` class Animal: def __init__(self, name): self.name = name def speak(self):...
自己设计的一个程序,展现有继承结构的子类对象的初始化过程(包含构造方法、初始化值、父类构造方法、父类的初始化值的环节)