2013-03-18 2 views
-3

Я попытался запустить этот код (в 3 разных классах - A, B и C), и он не работает. Я не могу понять, почему нет. Может ли кто-нибудь помочь?Как запустить этот код?

public class A {  

    private int number; 
    protected String name; 
    public double price; 

    public A () { 
     System.out.println ("A() called"); } 

    private void foo1() { 
     System.out.println("A version of foo1() called"); } 

    protected int foo2(){ 
     System.out.println("A version of foo2() called"); 
     return number; } 

    public String foo3(){ 
     System.out.println("A version of foo3() called"); 
     return "Hi";    
    } 
} 

public class B extends A { 

    private char service; 

    public B () { 
     super(); 

     System.out.println("B() called"); } 

    public void foo1 () { 
     System.out.println("B version of foo1() called"); } 

    protected int foo2 (){ 
     int n = super.foo2(); 
     System.out.println("B version of foo2() called"); 
     return (n+5); } 

    public String foo3 () { 
     String temp = super.foo3 (); 
     System.out.println("B version of foo3()"); 
     return (temp + " foo3"); } } 

public class C extends B { 

    public C(){ 
     super(); 
     System.out.println("C() called"); } 

    public void foo1 () { 
     System.out.println("C version of foo1() called"); 
    } 
} 
+0

Что происходит, когда вы пытаетесь запустить его? Какое точное исключение или ошибка вы видите? –

+0

Покажите свою ошибку! – Kickaha

+2

Что именно вы подразумеваете под словом «он не работает»? Скомпилирует ли он? Что вы ожидаете от этого и что он на самом деле делает? Запускает ли программа, но делает что-то не так, или вы не можете начать ее вообще? –

ответ

2

Вы не метод main, чтобы указать начало программы. Вам нужно создать основной метод в одном из ваших классов со следующей подписью:

+0

Да, я пробовал это, и каждый раз, когда я его вставлял (независимо от того, какой класс), он дает мне ошибки. – Slink

2

Нечто подобное должно позволить вашей программе работать

public static void main(String[] args) 
{ 
    A a = new A(); 
    a.foo2(); 
    a.foo3(); 

    //same for B and C 
} 
+0

Это сработало, спасибо вам большое! – Slink

+0

Это никогда не будет компилироваться. Поскольку метод foo1() в классе A является частным методом. – Jayamohan

+1

Если это сработало, проголосуйте за ответ! –

0

Добавить еще один класс в том же пакете. Например, у меня есть создать один класс с именем приложения, как показано ниже:

public class Application{ 
     public static void main(String []args){ 
       A a = new A(); 
       a.foo3(); 
       B b = new B(); 
       b.foo1(); 
       C c = new C(); 
       c.foo1(); 
     } 
    } 

И тогда, пожалуйста, попробуйте запустить его снова ...

+0

Это никогда не будет компилироваться. Поскольку метод foo1() в классе A является частным методом. – Jayamohan

+0

oh..thanks .. Я обновил его. – Ericton

Смежные вопросы