父类构造方法 调用子类的构造方法时,不是要自动先调用父类的构造方法么?
调用子类的构造方法时,不是要自动先调用父类的构造方法么?

调用子类的构造方法时,不是要自动先调用父类的构造方法么?
这个构造方法不叫继承哈 子类的构造方法是必须要调用父类的构造方法的 当然有时候可以不写出来而已 什么时候可以不写呢? 就是父类有无参数的构造方法 子类就可以不用写出来
至于怎样继承: 假如有个A类 另一个B类继承A类
那么B类的构造方法里就要写
public B(){
super(); 如果A类的构造方法没有参数 这句就可以省略 如果A类没有无参数的构造方法,你还必须写出来,并且把要传递的参数也写到super(参数);
......
}
调用子类构造方法时为什么先要调用父类构造方法
个人理解,因为子类继承父类,则同时继承父类的一些特性。
所以子类class实际上理解为是带着父类class中内容的
创建子类的实例时,自然会先有父类的属性和方法在其中,才能进一步构造子类的方法。
package test; public class FatherClass{public FatherClass(){System.out.println("FatherClass Create");}}子类:package test; import test.FatherClass; public class ChildClass extends FatherClass{public ChildClass(){System.out.println("ChildClass Create"); }public static void main(String[] args){FatherClass fc = new FatherClass(); ChildClass = new ChildClass(); 当创建子类的时候,会调用父类的构造函数}}输出结果:C:>java test.ChildClassFatherClass Create
父类有有参构造方法时,子类还会首先调用父类构造方法吗?
父类有有参构造方法有两种情况,一只有有参构造,那么子类的构造方法中的第一句必须调用父类的有参构造方法,也就是“super(....);”,....为你传入的参数如:
class Father {
public Father(String lastname) {
}
}
class Son extends Father {
public Son() {
super("aaaa");这句必须有
可以写其他代码
}
}
二有有参也有无参构造方法,这时子类不显示调用super,这会默认自动调用父类无参的构造方法,如:
class Father {
public Father() {
}
public Father(String lastname) {
}
}
class Son extends Father {
public Son() {
super();这句可以有也可以没有,没有写的话会自动调用
可以写其他代码
}
}
为什么子类构造时要先调用父类的构造方法
构造一个对象,先调用其构造方法,来初始化其成员函数和成员变量。子类拥有父的成员变量和成员方法,如果不调用,则从父类继承而来的成员变量和成员方法得不到正确的初始化。C#代码实例: public class Person{public string Name { get; set; } public int Age { get; set; } public Person(string name,int age){this.Name = name; this.Age = age;}public void say(){Console.WriteLine(this.Name+this.Age);}}public class Teacher:Person{public Teacher()teacher.say();}结果输出:老师20
在子类构造方法的哪个地方可以调用其父类的构造方法
父类:
package object;
public class FatherClass {
public FatherClass(){
System.out.println("this is fatherClass!!!");
}
}
****************************************
子类:
package object;
public class SunClass extends FatherClass {
public SunClass() {
System.out.println("this is SunClass");
}
public static void main(String[] args) {
SunClass sun=new SunClass();
}
}
直接实例化子类 不重写构造方法就能调用了
java中在调用有参构造方法时,是不是能自动调用无参构造方法?
所谓构造器就是说用来构建对象的
在你new对象的时候就会默认被调用的是无参构造器
比如说你要new一个people
默认调用无参构造器也就是说已经给你了一个people
至于他有没有鼻子和眼睛。。等 那就要看你有没有给参数了
总之 也就是说你要建立一个有鼻子有眼睛的people 至少要是一个人
然后给他加上鼻子和眼睛。。
呵呵 在含有有参构造器的类中 要手动加入无参构造器的(没有有参构造器时不用)
看来这一点你是知道的!