抽象类和抽象方法起什么作用
发布网友
发布时间:2022-04-24 11:48
我来回答
共6个回答
热心网友
时间:2022-04-22 10:39
1、抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽象类中的成员方法可以包括一般方法和抽象方法。
2、抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。
3、抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。 抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。 abstract不能与private、static、final、native并列修饰同一个方法。
热心网友
时间:2022-04-22 12:14
多态..主要是有某些方法,你在很多类中都需要用到,把这些方法抽象出来,然后继承这些抽象类.然后再重写类里面的抽象方法!
热心网友
时间:2022-04-22 14:05
抽象类和抽象方法就是用来被继承的子程序进行重写的 所以抽象方法中不需要写任何代码
给你举个例子吧
abstract Animal{ //定义一个抽象类animal
run{} //定义animal类的一个抽象方法 run
}
方法中不写任何东西是因为不同的继承它的类的跑的方法不同 也就是说 不管你定义animal类的run方法为什么 子类都是要重写的 既然如此 抽象类中只需写一个方法名 而不需要在方法中写任何东西
明白了吗
热心网友
时间:2022-04-22 16:13
打个比方,要做一个游戏。如果要创建一个角色,如果反复创建类和方法会很繁琐和麻烦。建一个抽象类后。若要创建角色可直接继承抽象类中的字段和方法,而抽象类中又有抽象方法。如果一个角色有很多种职业,每个职业又有很多技能,要是依次实例这些技能方法会显得想当笨拙。定义抽象方法,在需要时继承后重写调用,可以省去很多代码。
总之抽象类和抽象方法起到一个框架作用。很方便后期的调用和重写
抽象方法是为了程序的可扩展性。重写抽象方法时即可实现同名方法但又非同目的的要求。
热心网友
时间:2022-04-22 18:38
实现多态啊..
最简单的一个作用,实现模板.
所有继承抽象类的子类,必须强制实现抽象类的抽象方法.如果没有抽象方法,则子类可有,可没有该方法.定义一个抽象方法后,所有子类就必须实现了.
另外,抽象类通常用于指向子类的实例:
比如:
抽象类 实例 = new 子类();
实例.抽象方法();
如果你不定义抽象方法,如何使用子类的方法呢??
热心网友
时间:2022-04-22 21:19
刚理解的不知道对不对
抽象的类,必须被继承(extend)过,有具体字子类,不能创建抽象的类,只能创建具体的子类 即相当于 树的叶子,能够被创建为对象,中间的枝叶被创建成抽象的类,不能被创建。
而抽象的方法。必须被覆盖。所以在父类声明抽象的方法,就必须在子类的实现该方法。所以抽象的方法就是不需要写实现过程。但是子类必须写明该方法是如何实现的。保证了子类必须重写该方法。继承该类的子类必须包含该方法。例如 我在父类编写了一个创建角色的抽象的方法,子类继承,就必须重写实现该方法。否则,就不能编译通过。也就是 好多子类继承这个父类,创建 剑客 子类 创建射手子类 创建法师子类。都必须创建角色 如果不创建 就编译过不去。