能通过子类对象向上转型为父类对象调用父类static final修饰的方法吗?
class Ghu {
/**
* @param args
*/
private final void kis() {
System.out.println("hello");
}
class ABC extends Ghu{
public final void kis(){
System.out.println("javac");
}
}
public class Abcd{
public void main(String[] args) {
// TODO Auto-generated method stub
ABC abc=new ABC();
abc.kis();
Ghu ab=abc;/*将子类对象向上转型为父类对象*/
ab.kis();
}
}
------解决方案--------------------ab调用的就是父类的kis
而abc调用的就是子类的kis
------解决方案--------------------你父类的方法是私有的 怎么可以访问啊
------解决方案--------------------应该不能访问吧,
Ghu ab=abc;/*将子类对象向上转型为父类对象*/
这里的ab还是指向子类ABC的对象啊,不好访问父类的私有方法的。
lz代码都写完了,试一下不就知道结果了。
------解决方案--------------------楼主的代码有问题啊
1.ABC是非静态内部类 不能如此实例化吧 必须要父类的实例才行
2.私有的方法只能在类内部访问吧 外部怎么能访问
------解决方案--------------------代码有问题啊 。 子类是不能继承父类私有方法的!
------解决方案--------------------看, static 都没找到,问题与标题不符。
------解决方案-------------------- 不 final 是常量 是不能更改的意思 意思就是说
子类继承父类的这个方法 是不能被修改的
------解决方案--------------------楼主的 main 方法是在子类中的,子类中不能调用父类的私有方法
------解决方案-------------------- 不用转什么都可以用
也就是说 可以转!
但你写的 代码有错误
------解决方案--------------------记住static的方法是不存在多态的概念的
不要用“对象.静态方法”的方式访问,而一直坚持使用“类名.静态方法”的方式调用就不会出错
------解决方案--------------------你没搞错吧!
把继承写在内部类!
内部类可以访问外部类的一切属性(包括私有的)!
------解决方案--------------------