user260833:
なぜ、以下のような出力がありますか?
自転車が作成されます
安全に実行されています。..
ギア変更
我々が呼び出しされていないためBike()
、メソッドの任意の場所を。
abstract class Bike {
Bike() {
System.out.println("bike is created");
}
abstract void run();
void changeGear() {
System.out.println("gear changed");
}
}
//Creating a Child class which inherits Abstract class
class Honda extends Bike {
void run() {
System.out.println("running safely..");
}
}
//Creating a Test class which calls abstract and non-abstract methods
class TestAbstraction2 {
public static void main(String args[]) {
Bike obj = new Honda();
obj.run();
obj.changeGear();
}
}
user7294900:
ホンダのクラスを使用して作成されたデフォルトコンストラクタ
クラスは、仮パラメータがないデフォルトコンストラクタその後、コンストラクタの宣言が含まれていないし、何が句をスローした場合、暗黙的に宣言されています。
public class Point { int x, y; }
宣言と同等です。
public class Point { int x, y; public Point() { super(); } }
だから、Bike()
すべての呼び出しに呼ばれていますnew Honda();