首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

初学java,一点小疑点望指点

2012-12-28 
初学java,一点小问题望指点!本帖最后由 chn_qmn 于 2012-11-23 11:39:09 编辑package fish4_1public clas

初学java,一点小问题望指点!
本帖最后由 chn_qmn 于 2012-11-23 11:39:09 编辑

package fish4_1;


public class Fish
{
abstract class Car
{
public abstract void startUp();
}

abstract class Mazda extends Car
{
public abstract void turbo();
}

public class Mazda6 extends Car
{
public void starup()
{
System.out.println("调用了Mazda6的启动功能!!!");
}

public void turbo()
{
System.out.println("调用了Mazda6的加速功能!!!");
}
}

public class Mazda3 extends Car
{
public void starup()
{
System.out.println("调用了Mazda3的启动功能!!!");
}

public void turbo()
{
System.out.println("调用了Mazda3的加速功能!!!");
}

}


public static void main(String[] args)
{
Mazda6 m6 = new Mazda6();

m6.startUp();
m6.turbo();

Mazda3 m3 = new Mazda3();

m3.startUp();
m3.turbo();
}
}


总是出现错误,不知道怎么改,学识浅薄见笑~我的开发环境是eclipse
[最优解释]

public class Fish
{
    public static void main(String[] args)
    {
        Mazda6 m6 = new Mazda6();
         
        m6.startUp();
        m6.turbo();
         
        Mazda3 m3 = new Mazda3();
         
        m3.startUp();
        m3.turbo();
    }
}

abstract class Car
{
    public abstract void startUp();
}

abstract class Mazda extends Car
{
    public abstract void turbo();
}

class Mazda6 extends Car
{
    public void turbo()
    {
        System.out.println("调用了Mazda6的加速功能!!!");
    }

@Override
public void startUp() {
// TODO Auto-generated method stub
System.out.println("调用了Mazda6的启动功能!!!");
}      
}

class Mazda3 extends Car
{
    public void turbo()
    {
        System.out.println("调用了Mazda3的加速功能!!!");
    }

@Override
public void startUp() {
// TODO Auto-generated method stub
System.out.println("调用了Mazda3的启动功能!!!");
}
 
}

这样写就不会出错了
[其他解释]
首先你的Mazda6 和Mazda3里面的方法名写错了。还有既然把两个抽象类和两个子类放到Fish类里面,那么就不能这样建立对象了,要么像GJ20107924回答的那样写,要么
Fish f=new Fish();   
f.new Mazda6().startUp();
这样调用。
------其他解决方案--------------------


楼上是正解!

package com.qustion;

public class Fish
{
    abstract class Car
    {
        public abstract void startUp();
    }
 
    abstract class Mazda extends Car
    {
        public abstract void turbo();
    }
 
    public class Mazda6 extends Car
    {
        public void starup()
        {
            System.out.println("调用了Mazda6的启动功能!!!");
        }
         
        public void turbo()
        {
            System.out.println("调用了Mazda6的加速功能!!!");
        }

@Override
public void startUp() {
// TODO Auto-generated method stub

}      
    }
 
    public class Mazda3 extends Car
    {
        public void starup()
        {
            System.out.println("调用了Mazda3的启动功能!!!");
        }
         
        public void turbo()
        {
            System.out.println("调用了Mazda3的加速功能!!!");
        }

@Override
public void startUp() {
// TODO Auto-generated method stub

}
     
    }
 
     
    public static void main(String[] args)
    {
        Mazda6 m6 = new Fish().new Mazda6();
         
        m6.startUp();
        m6.turbo();
         
        Mazda3 m3 = new Fish().new Mazda3();
         
        m3.startUp();
        m3.turbo();
    }
}

[其他解释]
一个class文件里最好只写一个类,其他的class文件都分开写,需要的时候直接调用,这样才实现了java面向对象的思想嘛
[其他解释]
父类是抽象的,里面有个抽象方法starpUp(),继承他的子类必须实现抽象方法.

目测应该就是这个错误吧,我也才学2个月
[其他解释]
你Mazda6 要是实现car类里面的abstract方法的 也就是startUp()方法


[其他解释]
父类是抽象的,里面有个抽象方法startUp(),继承他的子类必须实现抽象方法,你写的程序实现的方法是starup(),可能是你方法名字写错了,还有一个程序里只有一个public类,把其他类前面的public去掉,或者新建一个类,这样就ok了!
[其他解释]
一个文件中public class(包含main())只能有一个,其余都将public去掉就好了
[其他解释]
我是来学习的!
[其他解释]
3楼正解!.....
[其他解释]
Mazda6,Mazda3这两个类都没有继承Mazda这个类,然后调用Car里没有的public void turbo()方法,肯定报错里
[其他解释]
不好意思,刚刚看错了,同意3楼的方法

热点排行