黑马程序员技术交流社区

标题: java继承,父类子类有同名函数,子类被私有,访问父类函数 [打印本页]

作者: cs8630323    时间: 2013-8-23 20:31
标题: java继承,父类子类有同名函数,子类被私有,访问父类函数
本帖最后由 forward 于 2013-8-24 20:15 编辑

1.如果子类函数A私有了,应该就不会覆盖父类函数A,那么父类函数A隐藏了?创建子类对象怎么访问这么父类函数A
class Person
{     
   void A()
        {
  System.out.println("ssss") ;
         }
}
class Student extends Person
{     
private void A()
{
  System.out.println("aaaa") ;
}
public class ExampleDemo01
{
public static void main(String args[])
    {
         Student  C = new Student ();
         C.A() ;   //子类A函数私有无法访问,编译不通过,那么怎么调用父类A函数呢??



作者: 行如止水    时间: 2013-8-23 20:34
看你的问题不太明白,不如贴代码看的清楚些
作者: cs8630323    时间: 2013-8-23 21:03
改好了。。。。。。
作者: べPNヤ    时间: 2013-8-23 21:22
本帖最后由 べPNヤ 于 2013-8-23 21:24 编辑

首先 子类student 是无法复写父类的方法 A  因为权限小于父类的方法A权限,其次 C.A  掉用方法的格式就错了  应该是 C.A();   之类继承父类之后 就有了父类的方法,楼主代码的意思是要重写父类方法,调用就是创建对象  使用 对象.方法名();的方式调用即可
作者: litaojisuanji    时间: 2013-8-23 22:33
  1. class Person
  2. {   
  3.         //因为方法被私有了,无法给子类调用,只有写一个方法给子类调用。
  4.         void showA()
  5.         {
  6.                 A();
  7.         }
  8.          //因为你子类权限小于父类所以无法覆盖父类,所以父类也加上private
  9.         private void A()
  10.     {
  11.                 System.out.println("ssss") ;
  12.     }
  13. }
  14. class Student extends Person
  15. {   
  16.         //调用父类A();方法
  17.         void showSuperA()
  18.         {
  19.                 super.showA();
  20.         }
  21.         //覆盖父类调用A方法。
  22.         void showA()
  23.         {
  24.                 A();
  25.         }
  26.         //覆盖父类A方法。
  27.         private void A()
  28.         {
  29.                 System.out.println("aaaa") ;
  30.         }
  31. }
  32. public class Demo
  33. {
  34.         public static void main(String[] args)
  35.     {
  36.          Student  C = new Student ();
  37.          C.showSuperA() ;
  38.          C.showA();
  39.     }
  40. }
复制代码
感觉只有这样能实现了。。另外希望养成良好代码格式的习惯。。
作者: 穿靴子的猫    时间: 2013-8-23 22:40
重写不了啊 如果加上访问修饰符更不能编译通过 私有只能本类访问 建议改名 调用父类的A方法
作者: 穿靴子的猫    时间: 2013-8-23 22:41
重写不了啊 如果加上访问修饰符更不能编译通过 私有只能本类访问 建议改名 调用父类的A方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2