A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ID1003 中级黑马   /  2014-5-18 17:18  /  1627 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ID1003 于 2014-5-18 18:22 编辑

当子类和父类中存在相同的一个函数,比如 void show(){};但是父类中被private修饰了,那么这个方法,是子类把父类重写了吗?但是 private不是私有的吗?求解

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 很给力!欢迎继续来论坛学习~

查看全部评分

6 个回复

倒序浏览
没有重写,
方法重写:
                一般是指在子类中出现了和父类一模一样的方法声明,方法体不一样。
                        A:父类的私有方法不能被重写。
                        B:子类重写后的方法的访问权限要大于等于父类方法的访问权限。
                        C:子类重写后的方法的返回值类型:
                                基本类型:一致。
                                引用类型:是父类本身或者父类的子类。
                开发中,基本上不会出现注意里面的问题,因为开发中方法声明都是一模一样的
回复 使用道具 举报
肯定没有重写啊
      在Java中重写指的的子类 中定义和父类一模一样的函数,参数值类型、参数个数都必须一样,方法体一样不一样就没要求了,要是一样还重写干嘛??!!
     另外最需要注意的就是权限了,子类中复写的方法权限要大于等于父类方法的权限!!!如果父类方法private私有了话就不能被重写了,至少也要是默认的权限,一般都是public权限。
   
  1. class Fu
  2. {//父类方法被私有了是不被继承的,除非对外提供访问方式
  3.      private void show();
  4. }
  5. class Zi extends Fu
  6. {//show()方法是子类特有的方法 ,因为父类中show方法他看不到
  7.     public void show()
  8.     {   }
  9. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报
帽子 发表于 2014-5-18 17:34
没有重写,
方法重写:
                一般是指在子类中出现了和父类一模一样的方法声明,方法体不一样。

关于你说的B这一点,我突然间又想起来,我们老师说子类的返回值类型要小于父类的返回值类型,这句话是什么意思呢?
回复 使用道具 举报
当子父类中出现了同名方法的时候,如果父类中的方法被private私有的话,则子类中的同名方法不算是把父类中的同名方法给覆写了。
因为被private修饰的方法是不对外暴露的,也就是说子类根本就不知道父类中有这个方法,即使是在子类中写了一个同样的方法,也只能算是在子类当中重新编写了一个新的方法。

代码如下:
  1. class Person
  2. {
  3.         //父类中的show方法被private私有了。不对外暴露。
  4.         private void show(){}
  5. }

  6. class Student extends Person
  7. {
  8.         //子类中的show方法相当于是新创建的方法,不是覆写了父类的方法。
  9.         public void show(){}
  10. }

  11. class Demo
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                 new Student().show();
  16.         }
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报
mayor125 发表于 2014-5-18 18:17
当子父类中出现了同名方法的时候,如果父类中的方法被private私有的话,则子类中的同名方法不算是把父类中 ...

哦哦,有代码的话再加上你的解释,我看的还蛮清楚的了,谢谢奥:loveliness:
回复 使用道具 举报
没有被重写,private修饰不会被重写
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马