CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

类数组

楼主haisenmai(我应该做得到)2005-04-01 11:26:20 在 Java / J2SE / 基础类 提问

新建一个类数组之后,可以重写原来的类方法吗?  
  public   class     a  
  {  
  public   static   void   main(String   args[])  
      {      
    b   p[]=new   b[26];  
  for   (int   i=0;i<26;i++)  
  p[i]=new   b();  
  }  
  }  
    interface   pub  
  {   void   p1();}  
   
  class   b   implements   pub  
  {public   void   p1(){   System.out.println("******");}  
  }  
  比如我想让p[1]的p1()方法重写为System.out.println("........")怎么写? 问题点数:20、回复次数:11Top

1 楼Dan1980()回复于 2005-04-01 11:31:31 得分 5

没有继承,   哪来重写?  
   
  创建一个新的类c,   让c继承b,   在c里面重写p1(),   然后再把p[1]声明为c的实例就行了.Top

2 楼DreamDragon_NEU(梦龙)回复于 2005-04-01 11:35:18 得分 5

p[1]是一个对象,难道对象可以重写实例化它的类的方法,不太可能吧  
  不知道楼主想有什么样的实际用途  
  不过楼主可以考虑为b类定义不同的p1方法,然后在由传入不同的参数实现~~~  
  Top

3 楼haisenmai(我应该做得到)回复于 2005-04-01 11:40:46 得分 0

我想让一系列类为pub   接口设计出不同的方法 这些类放到一个数组里面 看来p[]是一个对象数组不是类数组 对吗?Top

4 楼DreamDragon_NEU(梦龙)回复于 2005-04-01 11:43:28 得分 0

是的~~~  
  因为你已经进行实例化了   p[i]=new   b();  
  Top

5 楼haisenmai(我应该做得到)回复于 2005-04-01 11:46:50 得分 0

有类数组吗?怎么实现啊Top

6 楼DreamDragon_NEU(梦龙)回复于 2005-04-01 11:56:13 得分 0

设计模式里有,不过最近好就没看了  
  楼主再问问别人吧~~~Top

7 楼Dan1980()回复于 2005-04-01 11:56:59 得分 5

不明白什么叫"类数组".  
   
  根据楼主所说:  
  -----------------------------------  
  我想让一系列类为pub   接口设计出不同的方法 这些类放到一个数组里面 看来p[]是一个对象数组不是类数组 对吗?  
  -----------------------------------  
   
  完全可以用多态实现啊.  
   
  interface   Pub   {  
      void   p1();  
  }  
   
  class   A   implements   Pub   {  
      public   void   p1()   {  
          System.out.println("A.p1()");  
      }  
  }  
   
  class   B   implements   Pub   {  
      public   void   p1()   {  
          System.out.println("B.p1()");  
      }  
  }  
   
  public   class   Test   {  
      public   static   void   main(String   args[])   {  
          //声明类型为接口Pub的数组  
          Pub[]   pub   =   new   Pub[2];  
          pub[0]   =   new   A();   //将new   A()向上转型为Pub  
          pub[1]   =   new   B();   //将new   B()向上转型为Pub  
      }  
  }  
   
  Top

8 楼haisenmai(我应该做得到)回复于 2005-04-01 17:16:31 得分 0

我的意思是  
  class   A   implements   Pub   {  
      public   void   p1()   {  
          System.out.println("A.p1()");  
      }  
  }  
   
  class   B   implements   Pub   {  
      public   void   p1()   {  
          System.out.println("B.p1()");  
      }  
  }  
  这样分别声明类A,B太麻烦了   因为接口里面有好多方法   而且要声明的类也好多     能不能一下子搞出好多类   就象数组一样   把A,B划到一个数组里面去啊   就象pub[]一样  
  Top

9 楼milkbottle(奶瓶->好好学习,天天向上)回复于 2005-04-01 17:47:07 得分 5

数组是不行的,   不过容器可以,   比如   ArrayList,   Vector   都可以不容的类事例。  
   
  但是你要想批量定义不同的类,那是做不到的。    
  建议你先定义一个父类,把大多数共有的方法先实现了,   然后再有子类继承他,复写一下自己的方法,就少了很多重复的代码了Top

10 楼WinFastNcr(随她去吧!)回复于 2005-04-01 18:08:14 得分 0

顶Top

11 楼haisenmai(我应该做得到)回复于 2005-04-01 18:59:44 得分 0

thanksTop

相关问题

  • 请教类的数组?
  • 求助:类数组定义
  • 数组、类、变量、Cstatic
  • 数组类型的用法
  • sql有数组类型吗?
  • 数组类,大虾帮忙
  • 数组类的*操作!
  • short类型的数组如何变成byte类型的数组?
  • 数组,包括控件类数组的问题
  • delphi有没有数组类,链表类

关键词

  • 数组

得分解答快速导航

  • 帖主:haisenmai
  • Dan1980
  • DreamDragon_NEU
  • Dan1980
  • milkbottle

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo