声明一个基类 A,它只有一种非默认构造方法;声明 A 的子类 B,B 具有默认方法及非默认方法,并在 B 的构造方法中调用基类 A 的构造方法。
//A 类public class A { public A(String lin) { System.out.println("A类的非默认构造方法 " + lin); }}//B 类public class B extends A { public B() { super("Fuck your teacher"); System.out.println("B默认类构造方法"); } public B(String lin) { super(lin); System.out.println("B类非构造方法"); }}//测试类public class test4_4 { public static void main(String[] args) { new B(); System.out.println(); new B("Fuck my teacher"); }}运行结果:[img=299x169]17af7c6cc478011.png[/img]
举一反三
- 关于在子类中调用父类构造方法的问题,下述说法正确的是: A: 子类构造方法一定要调用父类的构造方法; B: 子类构造方法只能在第一条语句调用父类的构造方法; C: 调用父类构造方法的方式是:父类名(参数表); D: 默认情况下子类的构造方法将调用父类的无参数构造方法。
- 下面关于构造方法的描述中正确的是( )。 A: Java编译器会为所有的类自动创建一个默认构造方法。 B: 在构造方法中使用this()调用其他构造方法时,this()必须位于该构造方法的第一行。 C: 当类中没有定义默认构造方法时,Java编译器将为这个类创建一个默认构造方法。 D: 构造方法必须声明返回值类型()。
- 子类的构造方法中,一定会调用父类的构造方法,如果没有指定,会默认调用 A: 有参数的构造方法 B: 无参数的构造方法 C: 调用super() D: 调用this
- 如果在类声明中声明了构造方法,系统是否还提供默认的构造方法?
- 如果子类没有显式地调用父类的构造方法,以下说法正确的是 ( )。 A: 执行子类的构造方法时,默认会去调用父类的无参构造方法 B: 执行子类的构造方法时,默认会去调用父类的带参构造方法 C: 这样是错误的,应该先调用父类的构造方法 D: 这样是错误的,应该执行完子类的构造方法后,去调用父类的构造方法
内容
- 0
关于默认构造方法,以下说法错误的是( )。 A: 默认构造方法是指带有参数的构造方法 B: 可以显式定义类的默认构造方法 C: 如果定义的类中没有构造方法,JVM将自动提供一个默认构造方法 D: 只要类中显式定义了一个或多个构造方法,而且这些定义的构造方法都带参数,那么将失去默认构造方法
- 1
下面关于默认构造方法的描述中正确的是( )。 A: Java编译器会为所有的类创建默认构造方法。 B: 默认构造方法可以初始化其他方法中定义的变量。 C: 当类中没有定义任何构造方法时,Java编译器将为这个类创建默认构造方法。 D: 如果一个类中的构造方法都声明了参数,Java编译器将为该类创建一个默认构造方法。
- 2
如果在类中没有显式地定义构造方法,会自动生成一个无参的构造方法。如果子类没有显式地调用父类的构造方法,默认调用父类无参的构造方法。
- 3
Java中的每个类至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法,如果已经定义了构造方法,则系统不会创建默认的构造方法。
- 4
【单选题】子类中如何调用父类带有参数的构造方法 (10.0分) A. 调用子类具有同样参数的构造方法时,会自动调用父类构造方法 B. 子类构造方法中用 super 关键字调用父类构造方法 C. 子类构造方法中使用 new 关键字调用父类的构造方法 D. 无法在子类中调用父类的构造方法