IDNLearn.com connects you with experts who provide accurate and reliable answers. Get prompt and accurate answers to your questions from our experts who are always ready to help.

Public class Test {
public static void main(String[] args) {
new Circle9();
}
}
public abstract class GeometricObject {
protected GeometricObject() {
System.out.print("A");
}
protected GeometricObject(String color, boolean filled) {
System.out.print("B");
}
}
public class Circle9 extends GeometricObject {
/** Default constructor */
public Circle9() {
this(1.0);
System.out.print("C");
}
/** Construct circle with a specified radius */
public Circle9(double radius) {
this(radius, "white", false);
System.out.print("D");
}
/** Construct a circle with specified radius, filled, and color */
public Circle9(double radius, String color, boolean filled) {
super(color, filled);
System.out.print("E");
}
}
The answer is BEDC but how did it come about?


Sagot :

Answer:

| Circle9(), System.out.print("C");

| Circle9(double radius), System.out.print("D");

| Circle9(double radius, String color, boolean filled) System.out.print("E");

| GeometricObject(String color, boolean filled) System.out.print("B");

Starting From The Bottom -------------------------------

Explanation:

Just debug it.

But you'll get BEDC due to the code arrangement.

In your main: new Circle9();

So, let's go to Circle9()

-----------------------------------------

public class Circle9 extends GeometricObject {  

public Circle9() {

this(1.0);

System.out.print("C");

}

--------------------------------------------------

We need to head to Circle9(double radius) because this(1.0) was called, System.out.print("C"); will not be processed just yet

So, let's go to Circle9(double radius)

-----------------------------------------

public Circle9(double radius) {

this(radius, "white", false);

System.out.print("D");

}

--------------------------------------------------

Again, we need to leave this call and head to another, Circle9(double radius, String color, boolean filled), because of this(radius, "white", false); was called System.out.print("D"); will not be processed just yet

So, let's go to Circle9(double radius, String color, boolean filled)

-----------------------------------------

public Circle9(double radius, String color, boolean filled) {

super(color, filled);

System.out.print("E");

}

--------------------------------------------------

So here super is called which just calls the "parent"  GeometricObject(String color, boolean filled).

After that, B is outputted to Console

We then print out E

We then print out D

We then print out C

So.... more concise:

Run Through This Backwards

| Circle9(), System.out.print("C");

| Circle9(double radius), System.out.print("D");

| Circle9(double radius, String color, boolean filled) System.out.print("E");

| GeometricObject(String color, boolean filled) System.out.print("B");

The constructor calls create this chain