Java继承中子类与父类的关系
2017-06-15 17:22
204 查看
初学Java,在继承章节的学习中遇到一些小问题,总结如下:
在生活中,我们经常会在前人已完成项目的基础上进行一些改动形成新的方案,在写代码中也是如此。如果我们希望在一个类的基础上进行升级和修改创建新的类,就会用到继承。其中父类是Superclass,子类是Subclass。
通过继承,子类可以得到父类除构造函数以外所有的成员(包括成员变量和成员函数),但是要注意得到并不等于可以随便使用。子类能否使用(访问)父类的成员由父类成员的属性决定,在此不详细展开。下面着重讲子类构造方法和父类构造方法的关系:
首先,我们知道在创建一个类的对象时,会自动调用这个类的构造函数。对于子类对象来说,在调用自身类的构造函数之前会先调用父类的构造函数。第一种情况:若子类构造函数向父类构造函数传递参数(通过super()在构造函数第一行实现),那么会自动调用父类有对应参数的构造函数;第二种情况:子类构造函数没有参数传递给父类构造函数,这种情况下系统会隐式调用父类无参数的构造函数,倘若父类没有任何构造函数,编译正常;若父类有带参数的构造函数而没有无参数的构造函数,编译时会发生错误。
对刚才的调用情况小结一下:无论如何,子类构造函数都会先调用父类构造函数,如果要传参数,通过super()实现;如果不传参数,那父类要么有一个无参数的构造函数,要么一个构造函数都没有,不然就会编译出错,通俗一点说就是我可以接受你啥也没有,但是不能有其他的但是没我要的==
在生活中,我们经常会在前人已完成项目的基础上进行一些改动形成新的方案,在写代码中也是如此。如果我们希望在一个类的基础上进行升级和修改创建新的类,就会用到继承。其中父类是Superclass,子类是Subclass。
通过继承,子类可以得到父类除构造函数以外所有的成员(包括成员变量和成员函数),但是要注意得到并不等于可以随便使用。子类能否使用(访问)父类的成员由父类成员的属性决定,在此不详细展开。下面着重讲子类构造方法和父类构造方法的关系:
首先,我们知道在创建一个类的对象时,会自动调用这个类的构造函数。对于子类对象来说,在调用自身类的构造函数之前会先调用父类的构造函数。第一种情况:若子类构造函数向父类构造函数传递参数(通过super()在构造函数第一行实现),那么会自动调用父类有对应参数的构造函数;第二种情况:子类构造函数没有参数传递给父类构造函数,这种情况下系统会隐式调用父类无参数的构造函数,倘若父类没有任何构造函数,编译正常;若父类有带参数的构造函数而没有无参数的构造函数,编译时会发生错误。
对刚才的调用情况小结一下:无论如何,子类构造函数都会先调用父类构造函数,如果要传参数,通过super()实现;如果不传参数,那父类要么有一个无参数的构造函数,要么一个构造函数都没有,不然就会编译出错,通俗一点说就是我可以接受你啥也没有,但是不能有其他的但是没我要的==
相关文章推荐
- JAVA继承关系中父类子类代码执行顺序
- 2018/01/07JAVA 基础 / 接口与继承:对接口与实现类、子类与父类的关系の理解
- Java中的继承:父类和子类的关系
- JAVA基础:子类、父类继承关系 静态块、非静态块、构造函数初始化顺序性、静态非静态方法覆盖
- java继承:父类和子类的关系
- Java 继承 父类变量, 方法 与子类的关系:
- java 子类与父类继承关系
- Java对象的构造过程---子类继承父类时(非)静态块及构造函数等的执行顺序
- PHP父类调用子类方法,CodeIgniter中DB的继承关系
- java中子类继承父类时是否继承构造函数
- java中子类继承父类,程序运行顺序
- Java中子类和父类之间的调用关系
- 多态的三个条件: 1、要有继承 2、要有重写 3、父类引用指向子类对象----java
- java中子类继承了父类的哪些成员
- JAVA中子类继承父类中哪些成员
- java中子类继承父类时是否继承构造函数
- java类继承中父类调用子类函数的问题
- java中子类继承父类时是否继承构造函数呢?
- C#中父类与子类的继承关系
- Java中子类与父类的构造方法的调用关系