Re: Inheritance and lousy Frame
Ok, I'm in trouble again.
Following the idea of doing one thing a time, I deleted a frame class
and left a super class and two subclasses, see respective code below
and added some System.out.println("TestOutput") lines for one of the
two subclasses, but the debug console did not output them and yet I did
not get any compilation errors. What's wrong? As usual, many thanks.
IDE in question, JBuilder 2005.
Would it have anything to do with abstract class? It does not seem to
be the case, I commented them out, still no show.
// super class
// goal: define some attributes for mammal
package oop1;
abstract public class MammalClass {
// members variable definition
private String name, eyeColor;
private int age;
public static void main(String[] args) {
};
// Accessor methods
// name property
public String getName() {
return name;
}
public void setName(String value) {
name = value;
}
// eyeColor property
public String getEyeColor() {
return eyeColor;
}
public void setEyeColor(String value) {
eyeColor = value;
}
// age property
public int getAge() {
return age;
}
public void setAge(int value) {
if (value > 0) {
age = value;
}
else {
age = 0;
}
}
// provide default value
public MammalClass() {
setName("some name");
setEyeColor("dark");
setAge(10);
System.out.println("test output from super class");
}
// abstract class, abstract method; declare at the supper class level
but implemented at each subclass
abstract public void speed();
}
// subclass
// goals:
// a) use super class to inherit some attribute from mammal;
// b) define some of its own attribute
package oop1;
public class DogClass extends MammalClass{
// class members
// boolean hasTail;
// use the parent's members as well
private boolean Tail;
public boolean hasTail() {
return Tail;
}
public void setTail(boolean value) {
Tail = value;
}
// calling super class's Accessor methods
public DogClass() {
setName("Pal");
setAge(3);
// test output
System.out.println("My dog: " + getName());
System.out.println("is + " + getAge() + "now.");
}
public void speed() {
javax.swing.JOptionPane.showMessageDialog(null, "30 mph", "Dog
Speed", 1);
}
}