package car;public abstract class che{ //车类

String cName;
String cCloro;
String cPai;

che(String N,String C,String P)
{
this.cName = N;
this.cCloro = C;
this.cPai = P;
}

abstract void Run();

abstract void Laba();
}
package car;public interface chezai { //接口 载人的方法

public void zai();}package car;public class paoche extends che implements chezai { paoche(String N, String C, String P) {
super(N, C, P);
// TODO 自动生成构造函数存根
} void Laba() {
// TODO 自动生成方法存根
System.out.println("这辆车有黄色的喇叭");
} void Run() {
// TODO 自动生成方法存根
System.out.println("这辆车可以跑");
} public void zai() {
// TODO 自动生成方法存根
System.out.println("本车只能载2个人");
}

}  //人类 用来买车
package car;public class pero {

String name;

pero(String n)
{
this.name = n;
}

che mai(String n)
{
  if(n=="跑车")
  {
  return new paoche("保时捷","白色","鄂A9001");
  }
  else if(n=="拖拉机")
  {
  return new tuolaji("解放","蓝色","鄂A9002");
  }
  else
  {
  return null;
  }
}}
package car;public class text { /**
 * @param args
 */
public static void main(String[] args) {
// TODO 自动生成方法存根
pero p = new pero("小明");
System.out.println(p.name);
che c = p.mai("跑车");
System.out.println(c.cName);
System.out.println(c.cCloro);
System.out.println(c.cPai);
                  c.zai()  //这个方法调用不出来 
}}我点那个  c.zai()  这个方法为什么调用不出来呢? 跑车类不是继承了che类  实现了接口chezai 里面的 zai() 这个方法么?  为什么这里的c.zai() 调用不出来呢?  新人请多指点下...

解决方案 »

  1.   

    public abstract class che{ //车类
        
        String cName;
        String cCloro;
        String cPai;
        
        che(String N,String C,String P)
        {
            this.cName = N;
            this.cCloro = C;
            this.cPai = P;
        }
        
        abstract void Run();
        abstract void zai();    abstract void Laba();
    }
    加上红字
      

  2.   

    n=="跑车"之类的比较是不对的.
    字符串比较要用equals()方法 
      

  3.   

    你的che类也要implements chezai接口啊,要不你che c = p.mai("跑车");
    c是一个车类型的,其中没有zai()这个方法声明啊,怎么可能行吗
    建议把不要chezai这个接口,把zai()声明放到che这个abstract类里面就可以了
      

  4.   

    按2 楼的方法做了。  2楼还是调用不出来.  请教2楼 n不是为字符串么 n=="跑车" 为什么不对啊?3楼的 可以调用的出来 那不是把我的c 转换成接口 chezai了?但是我的paoche类 不是实现了 chezai这个接口里面的方法了么。 为什么这里不能调用呢?
      

  5.   

    按一楼的做一下。
    你把paoche上传给了che,che没有zai()方法。
      

  6.   

    字符串比较用equal方法,直接==是比较地址