运行C类的输出是什么? class A { public A() { System.out.println( "The default constructor of A is invoked"); } } class B extends A { public B() { System.out.println( "The default constructor of B is invoked"); } } public class C { public static void main(String[] args) { B b = new B(); } }
时间: 2024-02-23 19:00:31 浏览: 185
运行 `C` 类的输出如下:
```
The default constructor of A is invoked
The default constructor of B is invoked
```
这是因为 `B` 类继承自 `A` 类,当创建 `B` 类的实例时,会先调用父类 `A` 的构造方法,然后再调用 `B` 类自己的构造方法。因此,在创建 `B` 类实例时,会先输出 `"The default constructor of A is invoked"`,然后再输出 `"The default constructor of B is invoked"`。
相关问题
public class Main { public static void main(String[] args) { Test test = new Test(true); } } class Test { public Test(){ System.out.println("Constructor one invoked!"); } public Test(int x){ System.out.println("Constructor two invoked!"); } public Test(boolean b){ System.out.println("Constructor three invoked!"); } } 使得程序输出结果,如下所示。 Constructor one invoked! Constructor two invoked! Constructor three invoked!
可以通过以下代码实现:
```
public class Main {
public static void main(String[] args) {
Test test1 = new Test();
Test test2 = new Test(1);
Test test3 = new Test(true);
}
}
class Test {
public Test() {
System.out.println("Constructor one invoked!");
}
public Test(int x) {
System.out.println("Constructor two invoked!");
}
public Test(boolean b) {
System.out.println("Constructor three invoked!");
}
}
```
输出结果为:
```
Constructor one invoked!
Constructor two invoked!
Constructor three invoked!
```
use java to continue the question,Add a class Lender that extends User. The constructor of the Lender class takes as arguments a name and the number of books lent by the user. The Lender class does not have any instance variable. Warning: the constructor of the Lender class takes as argument the number of books lent by the lender, but the book instance variable of the User class indicates how many books the user borrowed! Lending books is the same as borrowing a negative number of books. The moreBook method of the Lender class increases the number of books lent by the lender user by the number given as argument to the method (so the books borrowed by the lender becomes more negative!) Make sure you test all the methods of your new Lender class using testLender method. Here are some tests for your new Lender class: public static void testLender() { Lender l = new Lender("Anna",5); System.out.println(l.getName() == "Anna"); System.out.println(l.getBook() == -5); l.setBook(-6); System.out.println(l.getBook() == -6); l.moreBook(2); System.out.println(l.getBook() == -8); l.moreBook(-9); System.out.println(l.getBook() == 1); } Also, do not forget to modify your Test class to test the Lender class.
Alright, here's the updated code with the Lender class:
```
public class User {
private String name;
private int book;
public User(String name) {
this.name = name;
this.book = 0;
}
public String getName() {
return name;
}
public int getBook() {
return book;
}
public void setBook(int book) {
this.book = book;
}
public void borrowBook(int num) {
book += num;
}
}
public class Lender extends User {
public Lender(String name, int numBooksLent) {
super(name);
borrowBook(-numBooksLent);
}
public void moreBook(int num) {
borrowBook(-num);
}
}
public class Test {
public static void main(String[] args) {
User u = new User("Bob");
System.out.println(u.getName() == "Bob");
System.out.println(u.getBook() == 0);
u.borrowBook(3);
System.out.println(u.getBook() == 3);
u.setBook(5);
System.out.println(u.getBook() == 5);
Lender l = new Lender("Anna", 5);
System.out.println(l.getName() == "Anna");
System.out.println(l.getBook() == -5);
l.setBook(-6);
System.out.println(l.getBook() == -6);
l.moreBook(2);
System.out.println(l.getBook() == -8);
l.moreBook(-9);
System.out.println(l.getBook() == 1);
}
}
```
In the Lender class constructor, we call the parent constructor with the `name` argument, and then immediately call `borrowBook(-numBooksLent)` to lend out the specified number of books.
The `moreBook` method simply calls `borrowBook` with a negative value to lend out more books.
In the `Test` class, we now have tests for both the `User` and `Lender` classes.
阅读全文