继承-子类构造方法调用方法问题

问题描述

子类构造方法调用方法问题

是不是子类构造方法里调用了任何方法,不管是自己重构的构造方法,还是其他方法,系统就不会给super()了,初学者有疑问,求大神解答

解决方案

     子类构造函数可以同时调用父类的super和其他方法,但是有语法限制,即如果需要调用父类super操作必须放在第一行。否则会有编译错误的。

解决方案二:

创建子类对象,是一定会调用其父类构造方法的,当你不写super()的时候, 调用的是父类默认构造方法

时间: 2024-09-15 02:46:50

继承-子类构造方法调用方法问题的相关文章

java 继承 多态-请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法

问题描述 请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法 public class TestA { public static void main(String[] args) { TestA a = new TestA(); a.start(); } public void start(){ B b = new B(); b.funA(); } public abstract class A { public void funA(){ System.out.pri

Python中子类怎样调用父类方法

python中类的初始化方法是__init__(),因此父类子类的初始化方法都是这个,如果子类不实现这个函数,初始化时调用父类的初始化函数,如果子类实现这个函数,就覆盖了父类的这个函数,既然继承父类,就要在这个函数里显式调用一下父类的__init__(),这跟C++,jAVA不一样,他们是自动调用父类初始化函数的. 调用父类函数有以下方法: class A: def method(self, arg): pass class B(A): def method(self, arg): # A.me

对象-oc 类的继承的实质,以及是怎样调用方法 和函数的

问题描述 oc 类的继承的实质,以及是怎样调用方法 和函数的 父类里声明的属性,会生成默认生成一个私有的成员变量.即不能被子类访问,那么子类通过继承得到了父类的属性,只能通过setter 和 getter 方法区访问父类的私有变量,那么这个私有变量不属于子类,那么在实例化这个子类的时候就没有这个私有变量,那么通过继承过来的setter 和getter方法访问的是什么,私有变量根本就没有生成啊! 同理在使用{}声明的私有变量同样可以在提供外部接口让外部访问,但是当子类继承后也可以通过生成实例对象,

java继承-关于Java继承的问题,方法的调用

问题描述 关于Java继承的问题,方法的调用 在下面这个程序中, class Person{ private void print(){ System.out.println("Person>void print"); } public void fun(){ this.print(); } }; class Student extends Person{ void print(){ System.out.println(" Student >void print

java-抽象类 子类实现相同方法 想想去执行抽象类中的方法,在从抽象类中调用子类具体方法

问题描述 java-抽象类 子类实现相同方法 想想去执行抽象类中的方法,在从抽象类中调用子类具体方法 如下代码,想得到这样结果execute AA before execute..C execute AA after 应该怎么处理 public class Test { public static void main(String[] args) { C c = new C(); c.A(); } } interface YY { public void A(); } abstract clas

一段代码,父类调用了子类重载的方法,求解释。

问题描述 public class Person {public void fight(){System.out.println("Person战斗");say();}public void say(){System.out.println("Person说话");}} public class Student extends Person {@Overridepublic void fight() {System.out.println("Student

对象-java子类构造方法的问题--必须要先调用父类的构造方法么?

问题描述 java子类构造方法的问题--必须要先调用父类的构造方法么? 好像有这样一说法在子类的构造方法中,如果没有调用父类的构造方法,就会默认加一个super() 如果父类没有这一构造方法,就会报错.我想问java在子类的构造方法时候是先检验是否能生成父类的对象还是先检测是否调用了该子类的其他构造方法,因为我这样试了试通过了编译. 解决方案 我的理解是18-19之间是没有调用的,因为下面的这句话就说明了19行的内容其实是等价于直接执行三个参数的构造方法,真正需要执行super的是在这三个参数的

super-为什么子类重写父类方法之后还要调用父类同名方法

问题描述 为什么子类重写父类方法之后还要调用父类同名方法 为什么子类重写父类方法之后还要调用父类同名方法 比如public class A extends B { public void say ( ) { super.say ( ); } 为什么重写父类方法之后还要在方法体里面用super关键词调用父类的同名方法呢 解决方案 你可以不调用,这个你自定,不是必须 解决方案二: SubClasing用法--子类重写父类方法,父类直接调用实现方式子类调用父类方法子类调用父类方法 解决方案三: 我想到

android中为什么子类重写oncreate方法之后,方法体还要用super调用同名方法

问题描述 android中为什么子类重写oncreate方法之后,方法体还要用super调用同名方法 android中为什么子类重写oncreate方法之后,方法体还要用super调用同名方法 去掉之后会报错的 解决方案 调用父类中的方法,子类中实现差异化 解决方案二: 父类原本的方法里面包含了很多初始化以及准备的代码,你去掉了肯定会报错 解决方案三: 肯定的呀,你去看看源码就知道了