日期:2014-05-19 浏览次数:20953 次
class Fruite {
final int price = 5;
}
class Orange extends Fruite {
final int price = 10;
}
public class SweetOrange extends Fruite {
final int price = 20;
public static void main(String[] args) {
Fruite f=new SweetOrange();
Orange o=new Orange();
System.out.println(f.price|o.price);
}
}
class Fruite {
final int price = 5;
}
public class SweetOrange extends Fruite {
public static void main(String[] args) {
SweetOrange f = new SweetOrange();
f.price=100;//报语法错误,表名,父类的final变量不能被修改
System.out.println(f.price);
}
}
------解决方案--------------------
楼上说的在理,其实子类确实继承了父类的成员变量price的值,但是子类中又定义了一下price变量,相当于父类的成员被覆盖了,所以不能算是修改final修饰的变量。如果在main函数中试图去修改的话,那肯定会报不能修改的错的。
------解决方案--------------------
你那是在子类里又重新声明了一次