【发布时间】:2017-08-09 11:31:33
【问题描述】:
我已经阅读了很多博客、教程和合作,但我对 java 中的动态绑定一无所知。当我创建名为“myspecialcar”的对象时,它会从“car”类创建一个对象作为类车辆的类型作为动态绑定对吗? 所以 java 知道当我执行方法 myspecialcar.getType() 我有一个汽车对象,它从汽车类执行方法。但是为什么我从类车辆中得到 type 呢?那是因为类车辆(类型)中的变量是静态绑定吗?
问候,
代码:
public class vehicle {
String type = "vehicle";
public String getType(){
return type;
}
}
public class car extends vehicle {
String type = "car";
public String getType(){
return type;
}
}
public class test {
public static void main (String[] args){
vehicle myvehicle = new vehicle(); // static binding
car mycar = new car(); // static binding
vehicle myspecialcar = new car(); //dynamic binding
System.out.println(myspecialcar.getType());
System.out.println(myspecialcar.type);
System.out.println(myspecialcar.getClass());
}
}
输出:
car
vehicle
class car
【问题讨论】:
-
请阅读naming conventions。它可以帮助其他开发人员阅读您的代码。
标签: java dynamic-binding static-binding