Cho biết kết quả hiển thị của đoạn mã sau:class TestA{public void start(){System.out.println("TestA");}}class TestB extends TestA{public void start(){System.out.println("TestB");}public static void main(String[] args){((TestA)new TestB()).start();}}doneTestATestBLỗi biên dịchLỗi thực thi
Question
Cho biết kết quả hiển thị của đoạn mã sau:class TestA{public void start(){System.out.println("TestA");}}class TestB extends TestA{public void start(){System.out.println("TestB");}public static void main(String[] args){((TestA)new TestB()).start();}}doneTestATestBLỗi biên dịchLỗi thực thi
Solution
Kết quả hiển thị của đoạn mã trên sẽ là "TestB".
Giải thích: Trong đoạn mã trên, chúng ta có hai lớp là TestA và TestB (TestB kế thừa từ TestA). Cả hai lớp đều có phương thức start() nhưng phương thức này được ghi đè trong lớp TestB.
Khi chúng ta tạo một đối tượng mới của lớp TestB và ép kiểu nó thành TestA ((TestA)new TestB()), đối tượng này vẫn giữ nguyên các thuộc tính và phương thức của lớp TestB. Do đó, khi gọi phương thức start(), phương thức start() của lớp TestB sẽ được thực thi, và "TestB" sẽ được in ra.
Similar Questions
public class Test { public void m1(String arg1) { arg1="Test"; } public static void main(String[] args) { Test test1= new Test(); String s= "Hello"; test1.m1(s); System.out.println(s); }}
3.Chọn đáp án đúng.class Run1 {void display(){ System.out.println("Run1");}}class Run2 extends Run1{void display2(){ System.out.println("display2");}}public class test {public static void main(String[] args) { Run2 run = new Run2(); run.display();}}doneRun1Run2Run1Run2Lỗi biên dịch
class Test { public static void main(String[] args) { for(int i = 0; 1; i++) { System.out.println("Hello"); break; } }}Compiler ErrorRun Time ErrorHello Hello HelloHello
8.Cho biết kết quả hiển thị của đoạn mã sau:class Food {Food() {System.out.print("1");}}class Fruit extends Food {Fruit() {System.out.print("2");}}class Banana2 extends Fruit {int size = 42;public static void main(String [] args) {Banana2 b = new Banana2();System.out.println(" restored " + b.size + " ");}}doneLỗi biên dịch1 restored 4212 restored 42121 restored 42
B A class A { String name="A"; public String getName() { return name; } String greeting() { return "class A"; }}class B extends A { String name="B"; String greeting() { return "class B"; } }public class Test { public static void main(String arg[]) { A a=new A(); A b=new B(); System.out.println(a.greeting()+" has name "+a.getName()); System.out.println(b.greeting()+" has name "+b.getName()); }} Place the names "A" and "B" in the following output. class has name class has name
Upgrade your grade with Knowee
Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.