JAVA中用abstract修饰的类被称为抽象类。抽象类中可以有抽象方法,也可以有具体实现的方法。
也可以没有抽象方法,但通常都含有抽象方法,这是我们定义抽象类的目的所在。
抽象类不可以被实例化,抽象类中的抽象方法必须由继承(extends)了该类的子类实现。如果子类没有重写父类中所有的抽象方法,则该子类也必须声明为抽象类,然后再声明一个类继承该子类,将其中的抽象方法实现。
[size=medium]abstract class Fruit{
public void kind(){
System.out.println("水果");
}
public abstract void buy();
public abstract void eat();
}
abstract class BuyApple extends Fruit{
public void buy(){
System.out.println("买苹果");
}
public abstract void eat();
}
class EatApple extends BuyApple{
public void eat(){
System.out.println("吃苹果");
}
}
public class Test{
public static void main(String s[]){
EatApple ea=new EatApple();
ea.kind();
ea.buy();
ea.eat();
}
}[/size]
小女子初学者,以上理解如果有误,望大家不吝赐教,谢谢!
问:在Eclipse中,上述例子的四个类中,是不是只能有一个public类?
也可以没有抽象方法,但通常都含有抽象方法,这是我们定义抽象类的目的所在。
抽象类不可以被实例化,抽象类中的抽象方法必须由继承(extends)了该类的子类实现。如果子类没有重写父类中所有的抽象方法,则该子类也必须声明为抽象类,然后再声明一个类继承该子类,将其中的抽象方法实现。
[size=medium]abstract class Fruit{
public void kind(){
System.out.println("水果");
}
public abstract void buy();
public abstract void eat();
}
abstract class BuyApple extends Fruit{
public void buy(){
System.out.println("买苹果");
}
public abstract void eat();
}
class EatApple extends BuyApple{
public void eat(){
System.out.println("吃苹果");
}
}
public class Test{
public static void main(String s[]){
EatApple ea=new EatApple();
ea.kind();
ea.buy();
ea.eat();
}
}[/size]
小女子初学者,以上理解如果有误,望大家不吝赐教,谢谢!
问:在Eclipse中,上述例子的四个类中,是不是只能有一个public类?