L
lonelyplanet999
While I was writing java programs with abstract class, I met below
compilation problems. Hope someone can help.
Case 1
======
File: c:\javapgm\aclass2\aclass1\Aclass1.java
package aclass1;
public abstract class Aclass1 {
private double price;
private String model;
public abstract void goFast();
public abstract void goUpHill();
}
Aclass1.java compiled successfully.
File: c:\javapgm\aclass2\Aclass2.java
import aclass1.Aclass1;
public abstract class Aclass2 extends Aclass1 {
public abstract void goDownHill();
public void goSlow() {
System.out.println ("This is non-abstract method goSlow()");
}
}
Aclass2.java compiled successfully.
File: c:\javapgm\Aclass3.java
import aclass2.Aclass2;
public class Aclass3 extends Aclass2 {
public void goFast() {
System.out.println ("This is non-abstract method goFast()");
}
public void goUpHill() {
System.out.println ("This is non-abstract method goUpHill()");
}
public void goDownHill() {
System.out.println ("This is non-abstract method goDownHill()");
}
}
Compiling Aclass3.java returned below error.
Aclass3.java:1: Cannot access aclass2.Aclass2
bad class file: .\aclass2\Aclass2.class
class file contains wrong class: Aclass2
Please remove or make sure it appears in the correct subdirectory of
the classpath.
import aclass2.Aclass2
^
1 error
Similar problem happened for below class definitions
Case 2
======
File: c:\javapgm\aclass2\aclass1\Aclass1.java
package aclass1;
public abstract class Aclass1 {
private double price;
private String model;
public abstract void goFast();
public abstract void goUpHill();
}
Aclass1.java compiled successfully.
File: c:\javapgm\aclass2\Aclass4.java
import aclass1.Aclass1;
public class Aclass4 extends Aclass1 {
public void goFast() {
System.out.println ("This is non-abstract method goFast()");
}
public void goUpHill() {
System.out.println ("This is non-abstract method goUpHill()");
}
public void goSlow() {
System.out.println ("This is non-abstract method goSlow()");
}
}
Aclass4.java compiled successfully.
File: c:\javapgm\Aclass5.java
import aclass2.Aclass4;
public class Aclass5 extends Aclass4 {
// public void doMore () {
// System.out.println("Calling Aclass4.goFast() inside
Aclass5.doMore()");
// goFast();
// }
public staic void main (String[] args) {
//doMore();
}
}
Compiling Aclass5.java returned below error
Aclass5.java:10: <identifier> expected
public static void main (String[] args) {
^
Aclass5.java:12: ';' expected
}
^
Aclass5.java:3: cannot access aclass2.Aclass4
bad class file: .\aclass2\Aclass4.class
class file contains wrong class: Aclass4
Please remove or make sure it appears in the correct subdirectory of
the classpath.
import aclass2.Aclass4;
^
3 errors
compilation problems. Hope someone can help.
Case 1
======
File: c:\javapgm\aclass2\aclass1\Aclass1.java
package aclass1;
public abstract class Aclass1 {
private double price;
private String model;
public abstract void goFast();
public abstract void goUpHill();
}
Aclass1.java compiled successfully.
File: c:\javapgm\aclass2\Aclass2.java
import aclass1.Aclass1;
public abstract class Aclass2 extends Aclass1 {
public abstract void goDownHill();
public void goSlow() {
System.out.println ("This is non-abstract method goSlow()");
}
}
Aclass2.java compiled successfully.
File: c:\javapgm\Aclass3.java
import aclass2.Aclass2;
public class Aclass3 extends Aclass2 {
public void goFast() {
System.out.println ("This is non-abstract method goFast()");
}
public void goUpHill() {
System.out.println ("This is non-abstract method goUpHill()");
}
public void goDownHill() {
System.out.println ("This is non-abstract method goDownHill()");
}
}
Compiling Aclass3.java returned below error.
Aclass3.java:1: Cannot access aclass2.Aclass2
bad class file: .\aclass2\Aclass2.class
class file contains wrong class: Aclass2
Please remove or make sure it appears in the correct subdirectory of
the classpath.
import aclass2.Aclass2
^
1 error
Similar problem happened for below class definitions
Case 2
======
File: c:\javapgm\aclass2\aclass1\Aclass1.java
package aclass1;
public abstract class Aclass1 {
private double price;
private String model;
public abstract void goFast();
public abstract void goUpHill();
}
Aclass1.java compiled successfully.
File: c:\javapgm\aclass2\Aclass4.java
import aclass1.Aclass1;
public class Aclass4 extends Aclass1 {
public void goFast() {
System.out.println ("This is non-abstract method goFast()");
}
public void goUpHill() {
System.out.println ("This is non-abstract method goUpHill()");
}
public void goSlow() {
System.out.println ("This is non-abstract method goSlow()");
}
}
Aclass4.java compiled successfully.
File: c:\javapgm\Aclass5.java
import aclass2.Aclass4;
public class Aclass5 extends Aclass4 {
// public void doMore () {
// System.out.println("Calling Aclass4.goFast() inside
Aclass5.doMore()");
// goFast();
// }
public staic void main (String[] args) {
//doMore();
}
}
Compiling Aclass5.java returned below error
Aclass5.java:10: <identifier> expected
public static void main (String[] args) {
^
Aclass5.java:12: ';' expected
}
^
Aclass5.java:3: cannot access aclass2.Aclass4
bad class file: .\aclass2\Aclass4.class
class file contains wrong class: Aclass4
Please remove or make sure it appears in the correct subdirectory of
the classpath.
import aclass2.Aclass4;
^
3 errors