| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3893 人关注过本帖
标题:覆写父类方法时,父类方法可以为private权限吗?
只看楼主 加入收藏
tianbian210
Rank: 1
等 级:新手上路
帖 子:46
专家分:1
注 册:2008-12-25
收藏
得分:0 
回复 10楼 a123456v15
学习学习了。
2010-04-05 22:58
bulezdf
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-1-7
收藏
得分:0 
class A
{
    private void fun()
    {
        System.out.println("你好private权限!");   
    }
   
}
class B extends A
{
     public void fun()
    {
        System.out.println("你好public权限!");   
    }
   
}
public class Demo
{
    public static void main(String args[])
    {
        B b = new B();   
        b.fun();   
    }
}
可以覆写
B类覆写A类中的fun()方法。在A类中fun()方法为private权限,在B类中覆写后为public权限,也可为default。
2012-01-07 19:21
bulezdf
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-1-7
收藏
得分:0 

class A
{
     private String fun()
    {
        return "123";   
    }
   
}
class B extends A
{
      public String fun()
      {
          return super.fun() + "456";   
      }
}
public class Demo
{
    public static void main(String args[])
    {
        B b = new B();   
        A a = new A();
        
        System.out.println(b.fun());   
        System.out.println(a.fun());
    }
}

编译出错:
Demo.java:13: 错误: fun()可以在A中访问private
                return super.fun() + "456";
                            ^
Demo.java:24: 错误: fun()可以在A中访问private
                System.out.println(a.fun());
                                    ^
2 个错误

结论:根据我现在所知,private访问权限是在本类中,所以子类是不能覆写父类的private方法,我在12楼的做法-->错!
        当把A类中的fun()方法改为public权限或得default,此程序编译正常,输出正常。

[ 本帖最后由 bulezdf 于 2012-1-7 20:45 编辑 ]
2012-01-07 20:40
快速回复:覆写父类方法时,父类方法可以为private权限吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017100 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved