就以下面这个程序来说,子类中的getVar()是否是对父类中的getVar()的覆盖?
class BaseClass
{
private float x=1.0f;
private float getVar()
{
return x;
}
}
class SubClass extends BaseClass
{
private float x=2.0f;
public double getVar()
{
return x;
}
public static void main(String args[])
{
System.out.println(new SubClass().getVar());
}
}
class BaseClass
{
private float x=1.0f;
private float getVar()
{
return x;
}
}
class SubClass extends BaseClass
{
private float x=2.0f;
public double getVar()
{
return x;
}
public static void main(String args[])
{
System.out.println(new SubClass().getVar());
}
}
解决方案 »
- Timer问题。求救
- 日..期..问..题.. 如何获得某年某周的起始日期和结束日期 比如2005年第10周的起始日期和结束日期
- 如何将字符串表示的ascii转换成中文字符
- Windows XP下Java程序退出锁资源管理器???
- Thead 中要等待一件事情完成,有什么好的方法? 要时时检测
- java关键字synchronized的问题
- poi 解析excel2007 样式设置问题
- 专家问题,快来解答!!
- 请问:再局域网中怎样用代理服务器,我要用GOOGLE!!
- Windows 2000 Server下如何配置jdk1.3的运行环境?
- 怎样才能获得当前网段的广播地址啊?
- 大家项目中使用ANT了吗?
{
private float x=1.0f;
private float getVar()//私有方法没有被子类继承,不能被覆盖,另外返回类型必须一样
{
return x;
}
}
class SubClass extends BaseClass
{
private float x=2.0f;
public double getVar()
{
return x;
}
public static void main(String args[])
{
System.out.println(new SubClass().getVar());
}
}
另外,这类问题楼主完全可以自己处理,何必到这里来问呢?public class T060416 {
public static void main(String[] args) {
Base s = new Sub();
s.b();
}
}class Base{
private int a(){
System.out.println("A.a()");
return 1;
}
public void b(){
a();
}
}class Sub extends Base{
private double a(){
System.out.println("B.a()");
return 1.0;
}
public void b(){
a();
}
}
1.其实私有方法都是FINAL的,所以不能覆盖
2.楼主的程序有问题System.out.println(new SubClass().getVar());只是调用了子类的 getVar ();
3.我说的可能简单了些,有些误导,父类的私有方法对于子类的一个实例是不可见的,只能通过父类的公有方法来访问