比如在一个类Citizen中,我要重写equals(objest obj)方法,会用到这样一个语句
if(obj instanceof Citizen) {
Citizen another = (Citizen) obj);
name.equals(another.name)
}
我想问的是中间那个 Citizen another = (Citizen) obj 是什么意思?这里的Citizen
代表的类还是它的类型?为什么非得这样做之后才可以 .name ,而就不可以obj.name呢?
if(obj instanceof Citizen) {
Citizen another = (Citizen) obj);
name.equals(another.name)
}
我想问的是中间那个 Citizen another = (Citizen) obj 是什么意思?这里的Citizen
代表的类还是它的类型?为什么非得这样做之后才可以 .name ,而就不可以obj.name呢?
Object是Citizen的父类这个不言而喻,不然你怎么重写它的方法?
Citizen 是类型
你用another another是Citizen类型的对象 输出的就是another的name
大致思想就是这样