注册 登录
编程论坛 JAVA论坛

java不能运行

醒山 发布于 2015-08-22 17:30, 1117 次点击
class A
{
    public void f()
    {
        System.out.printf("AAAA\n");
    }
}
class B extends A
{
    System.out.printf("BBBB\n");
}
class C extends B
{
    System.out.printf("CCCC\n");
}
public class TestPoly_1
{
    public static void g(A aa)
    {
        aa.f();
    }
    public static void main(String[] args)
    {
        A aa =new A();
        B bb= new B();
        C cc=new C();
        g(aa);
        g(bb);
        g(cc);
    }
}
大家看看这段代码,应该没有问题啊,为什么有7个错误,错误提示好奇怪,说需要class,但我有class啊,帮忙解答,谢谢了
20 回复
#2
诸葛欧阳2015-08-22 18:43
引入这些类的包了吗
#3
诸葛欧阳2015-08-22 18:44
还有就是静态函数能直接调用非静态函数吗
#4
calix2015-08-22 23:08
程序代码:
class A
{
    public void f()
    {
        System.out.printf("AAAA\n");
    }
}
class B extends A
{
    public void f()
    {
        System.out.printf("BBBB\n");//代码要放在方法体中
    }
   

}
class C extends B
{
    public void f()
    {
        System.out.printf("CCCC\n");//代码要放在方法体中
    }
   

}
public class TestPoly_1//因为该类是public类型,文件名要用TestPoly_1.java
{
    public static void g(A aa)
    {
        aa.f();
    }
    public static void main(String[] args)
    {
        A aa =new A();
        B bb= new B();
        C cc=new C();
        g(aa);
        g(bb);
        g(cc);
    }
}

//楼主是学C的吧
#5
醒山2015-08-23 09:19
回复 3楼 诸葛欧阳
不能调用,至少也要是静态的才行
#6
醒山2015-08-23 09:23
回复 4楼 calix
我的那条代码是在方法体中啊,难道我们理解的不一样,我的文件名是TestPoly_1,对的我是学c的,刚开始自学java
#7
calix2015-08-23 09:28
回复 6楼 醒山
程序代码:
class B extends A//这是类
{
    System.out.printf("BBBB\n");//你这样直接写是不行的
}
//要像下面这样
class B extends A
{
    public void f()
    {
        System.out.printf("BBBB\n");//代码要放在方法体中
    }
}
#8
醒山2015-08-23 09:52
哦,好像知道了,我试试,谢谢
#9
醒山2015-08-23 10:02
回复 7楼 calix
class A
{
    public static void f()
    {
        System.out.printf("AAAA\n");
    }
}
class B extends A
{
    public void f()
    {
        System.out.printf("BBBB\n");//代码要放在方法体中
    }
}
class C extends B
{
    public vstatic void f()
    {
        System.out.printf("CCCC\n");//代码要放在方法体中
    }
}
public class TestPoly_1
{
    public static void g(A aa)
    {
        aa.f();
    }
    public static void main(String[] args)
    {
        A aa =new A();
        B bb= new B();
        C cc=new C();
        g(aa);
        g(bb);
        g(cc);
    }
}
修改之后是这样,但依然有5个错误
#10
calix2015-08-23 14:37
回复 9楼 醒山
程序代码:
class A
{
    public void f()
    {
        System.out.printf("AAAA\n");
    }
}
class B extends A
{
    public void f()
    {
        System.out.printf("BBBB\n");
    }
   

}
class C extends B
{
    public void f()
    {
        System.out.printf("CCCC\n");
    }
   

}
public class TestPoly_1
{
    public static void g(A aa)
    {
        aa.f();
    }
    public static void main(String[] args)
    {
        A aa =new A();
        B bb= new B();
        C cc=new C();
        g(aa);
        g(bb);
        g(cc);
    }
}

javac TestPoly_1.java
java TestPoly_1
AAAA
BBBB
CCCC
你对比下,你最好用个好点的IDE工具像eclipse,它会帮你检查拼写错误继承关系等等
#11
醒山2015-08-23 15:41
回复 10楼 calix
你说的对,我怀疑是我安装的java有问题,你的代码是对的,但我在cmd中编译时,还是有三个错误,我想把它卸载,重新安装,谢谢了
#12
日知己所无2015-08-23 21:43
一般Java里不怎么用:System.out.printf("CCCC\n");

而是用System.out.println("CCCC");
#13
林月儿2015-08-23 21:53
public static void g(A aa)
{
        aa.f();
}
引用数据类型作为形参使用前还是判断一下数据类型防止空指针异常
#14
醒山2015-08-23 22:22
以下是引用林月儿在2015-8-23 21:53:32的发言:

public static void g(A aa)
{
        aa.f();
}
引用数据类型作为形参使用前还是判断一下数据类型防止空指针异常

空指针异常?我没有看出来啊,这段代码在我看来没有问题啊
#15
醒山2015-08-23 22:24
以下是引用日知己所无在2015-8-23 21:43:35的发言:

一般Java里不怎么用:System.out.printf("CCCC\n");

而是用System.out.println("CCCC");

你说的是对的,但也可以用的,是不会有错误的,而且printf功能似乎比printfln更强大一些,这是我个人看法,谢谢
#16
醒山2015-08-24 14:00
要疯了,昨天不能运行,今天又好了,啊啊啊啊class A
{public void f()
{
    System.out.printf("AAAA\n");
}
}
class B extends A
{public void f()
{
    System.out.printf("BBBB\n");
}
}
class C extends B
{public void f()
{
    System.out.printf("CCCC\n");
}
}
public class TestPoly_1
{
    public static void g()
    {
    }
    public static void main(String[] args)
    {g();
    }
}
#17
林月儿2015-08-24 19:45
回复 14楼 醒山
说是防止,查查api就明白了
#18
醒山2015-08-24 20:07
回复 17楼 林月儿
你是让我写一个判断语句,来判断数据类型,防止空指针异常,对吧
#19
林月儿2015-08-24 20:28
回复 18楼 醒山
建议而已,简单的用instanceof,也可以查看类型SimpleName
#20
醒山2015-08-24 21:19
回复 19楼 林月儿
嗯啦,谢谢了
#21
武功天下第二2015-08-25 15:04
放到方法中。就能重写父类的方法。
1