抽象类和抽象方法起什么作用

我在书中看到, 抽象方法不包含任何代码。 那直接在派生类实现方法不就可以了吗 ?为什么非要个抽象方法呢。

请问各位达人详细阐述一下。抽象类和抽象方法到底起什么作用。

1、抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽象类中的成员方法可以包括一般方法和抽象方法。
2、抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。
3、抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。 抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。 abstract不能与private、static、final、native并列修饰同一个方法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-11
打个比方,要做一个游戏。如果要创建一个角色,如果反复创建类和方法会很繁琐和麻烦。建一个抽象类后。若要创建角色可直接继承抽象类中的字段和方法,而抽象类中又有抽象方法。如果一个角色有很多种职业,每个职业又有很多技能,要是依次实例这些技能方法会显得想当笨拙。定义抽象方法,在需要时继承后重写调用,可以省去很多代码。
总之抽象类和抽象方法起到一个框架作用。很方便后期的调用和重写

抽象方法是为了程序的可扩展性。重写抽象方法时即可实现同名方法但又非同目的的要求。
第2个回答  推荐于2017-09-04
实现多态啊..

最简单的一个作用,实现模板.

所有继承抽象类的子类,必须强制实现抽象类的抽象方法.如果没有抽象方法,则子类可有,可没有该方法.定义一个抽象方法后,所有子类就必须实现了.

另外,抽象类通常用于指向子类的实例:
比如:
抽象类 实例 = new 子类();
实例.抽象方法();

如果你不定义抽象方法,如何使用子类的方法呢??本回答被提问者采纳
第3个回答  2010-05-05
抽象类和抽象方法就是用来被继承的子程序进行重写的 所以抽象方法中不需要写任何代码
给你举个例子吧
abstract Animal{ //定义一个抽象类animal
run{} //定义animal类的一个抽象方法 run
}
方法中不写任何东西是因为不同的继承它的类的跑的方法不同 也就是说 不管你定义animal类的run方法为什么 子类都是要重写的 既然如此 抽象类中只需写一个方法名 而不需要在方法中写任何东西
明白了吗
第4个回答  2010-05-05
多态..主要是有某些方法,你在很多类中都需要用到,把这些方法抽象出来,然后继承这些抽象类.然后再重写类里面的抽象方法!
相似回答