class Father(){
}
class Son extends Father(){
}
当Son son = new Son();的时候,默认先调用了Father(父类)的无参构造方法
Father father = new Father();
class Father(){
public Facher(String name){}
}
class Son extends Father(){
public Son(String name){
super(name){}
}
}
父类没有无参数的构造方法,当子类继承父类的时候,初始化子类的时候,如果没有特别
指定,虚拟机会自动调用父类的无参构造方法。而父类因为没有无参的构造方法,因此Son
没有办法通过编译。因此当父类没有无参构造方法的时候,子类必须最先调用父类的构造方法:
而且类似
class Son(){
。。。
。。。
super(。。。){}
}
这样写也是不对的,因为子类是依赖父类而存在的,在父类没有构造出来之前,子类不能进行任何操作。
总结:
子类继承父类,实际上并不是把父类的成员和方法都copy进来,编译出来的子类的class文件如果脱
离父类的class文件是不能正常运行的。只是子类可以调用父类的成员和方法,这就要求在运行子类的时
候父类也要初始化,构造方法就是父类初始化的入口,这也就是为什么一定要调用父类的构造方法的原因。
而父类含有无参的构造方法的时候,子类可以自动调用,没有无参的时候需要在程序中指定。在JAVA中,
Object类是所有类的父类,也就是说运行任何一个类都会初始化到Object。
分享到:
相关推荐
day09_09_继承中构造方法的访问特点
java中的继承(子类调用父类构造方法还不懂).doc
Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 ...2、调用类的构造方法时先调用父类的构造方法,在调用子类的构造方法 3、类初始化时,先初始化类的属性成员,在执行构造方法。
c++派生类继承构造函数方法!!!!!!!!!!!
在本文里我们给大家分享一篇关于Python 子类继承父类构造函数的相关知识点内容,需要的朋友们跟着学习下。
JAVA语言中构造方法的继承与重载探讨
第十章 C#继承 派生类 派生类的构造方法.docx
Java继承时构造函数的调用, java面向对象特征: 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...
内容为本人在学习java构造方法及继承部分时整理的笔记,内容为构造方法及继承基础知识
C#的基础语法, 类与对象,继承, 方法,构造方法等
但通常,在子类,很多时候,在构造方法中,都应该(需要)去调用父类的构造方法以节省代码,增加可读性: 子类中没有定义析构方法时,会自动调用父类的析构方法。子类定义了自己的析构方法,则不会自动调用父类的...
Java提升学习(二):构造方法,类的继承,封装 一、构造方法 类有一种特殊的成员方法叫做构造方法,构造方法与类同名,在创建对象时,会自动调用类的构造方法。 构造方法没有返回类型,更不能定义为void,不可加...
主要介绍了详解 Java继承关系下的构造方法调用的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
定义抽象类以及抽象方法,构造方法,将子类1定义为抽象类,子类2继承子类1,子类2重写抽象方法。用以帮助理解多重继承、抽象方法重写调用、super、this关键字使用、构造方法、重载这几个的知识点
主要介绍了java继承中的构造方法实例解析,针对继承中的构造方法的特点进行了实例分析,需要的朋友可以参考下
计算机前端-核心编程.视频07构造方法继承.avi
//super( ) 要放在方法中的第一句 System.out.println("in SubClass :x="+x); } void doSomething( ) { super.doSomething( ); //调用父类的方法 System.out.println("in SubClass.doSomething()"); ...
(2)学生类Student继承Person,增加了学号信息,有两个构造方法Student()和Student(姓名,性别,年龄,学号),调用父类Person的构造方法对父类部分进行构造,在Student()中,默认学号为空字符串,在Student...
一个构造方法,无参数,在此构造方法中初始化dogName,dogAge 说明二:关于SmallDog 继承Dog,不添加任何属性和方法 最后,在测试类中的main方法中生成SmallDog类的对象,访问属性dogName和dogAge,并打印出他们的值...