use*_*833 4 java constructor abstract-class
为什么输出如下?
自行车创建
安全运行..
装备改变了
因为我们不是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();
}
}
Run Code Online (Sandbox Code Playgroud)
Honda类是使用Default Constructor创建的
如果类不包含构造函数声明,则隐式声明没有形式参数且没有throws子句的默认构造函数.
Run Code Online (Sandbox Code Playgroud)public class Point { int x, y; }相当于声明:
Run Code Online (Sandbox Code Playgroud)public class Point { int x, y; public Point() { super(); } }
所以Bike()每次打电话都叫new Honda();
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |