我有一个抽象类MotorFahrzeug
和一个扩展类LKW
,如下所示。我写了一个类型参数<T extends MotorFahrzeug>
的泛型类,实现了一个比较器。我想知道为什么这个泛型类中的方法compare( T m1, T m2 )
可以访问受保护的字段。有人可以解释一下吗?
package de.bauer;
public abstract class MotorFahrzeug {
protected int id;
protected int hubraum;
protected int leistung;
// some stuff
}
}
package de.bauer;
public class LKW extends MotorFahrzeug {
private String kategorie = "Nutzfahrzeug";
// Konstruktor
LKW(int i, int l, int h) {
// some stuff
}
// some stuff
}
package de.bauer;
import java.util.Comparator;
public class VergleichHubraum<T extends MotorFahrzeug> implements Comparator<T> {
@Override
public int compare(T m1, T m2) {
int retValue = -1;
if( m1.hubraum == m2.hubraum)
retValue = 0;
if( m1.hubraum > m2.hubraum)
retValue = 1;
return retValue;
}
}
答案 0 :(得分:1)
声明如
package de.bauer;
public class VergleichHubraum<T extends MotorFahrzeug> implements Comparator<T> {
类型T
保证绑定到MotorFahrzeug
的子类型。由于MotorFahrzeug
与上面声明的类位于同一个包中,因此您可以通过protected
类型的引用访问其T
个成员。