抽象类

在抽象类中的成员方法可以包括一般方法和抽象方法。抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。

抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。
抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。

abstract不能与private、static、final、native并列修饰同一个方法。
程序举例:
abstract class Animal    //定义抽象类
{
    String str;
    Animal(String s)     //定义抽象类的一般方法
   {
        str=s;
   }
    abstract void eat();      //定义抽象方法
}
class Horse extends Animal     //定义继承Animal的子类

    String str;
    Horse(String s)
   {
     super(s);      //调用父类的构造方法
   }
    void eat()      //重写父类的抽象方法
   {    
      System.out.println("马吃草料!");
   }
}
class Dog extends Animal
{
    String str;
    Dog(String s)
    {
      super(s);
    }
    void eat()
    {
    System.out.println("狗吃骨头!");
    }
}
class test
{
    public static void main(String args[])
   {
      Horse Horse1 = new Horse("马");
      Dog Dog1 = new Dog("狗");
      Horse1.eat();
      Dog1.eat();
    }
}

运行结果:
马吃草料!
狗吃骨头!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值