Java基础之抽象类的概述

一时失言乱红尘 2023-02-28 04:12 16阅读 0赞
  1. /*
  2. 抽象类:
  3. 抽象:笼统,模糊,看不懂!不具体。
  4. 特点:
  5. 1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。
  6. 抽象方法必须定义在抽象类中。该类必须也被abstract修饰。
  7. 2,抽象类不可以被实例化。为什么?因为调用抽象方法没意义。
  8. 3,抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化。
  9. 否则,这个子类还是抽象类。
  10. 1,抽象类中有构造函数吗?
  11. 有,用于给子类对象进行初始化。
  12. 2,抽象类可以不定义抽象方法吗?
  13. 可以的。 但是很少见,目的就是不让该类创建对象。AWT的适配器对象就是这种类。
  14. 通常这个类中的方法有方法体,但是却没有内容。
  15. abstract class Demo
  16. {
  17. void show1()
  18. {
  19. }
  20. void show2()
  21. {
  22. }
  23. }
  24. 3,抽象关键字不可以和那些关键字共存?
  25. private 不行
  26. static 不行
  27. final 不行
  28. 4,抽象类和一般类的异同点。
  29. 相同点:
  30. 抽象类和一般类都是用来描述事物的,都在内部定了成员。
  31. 不同:
  32. 1,一般类有足够的信息描述事物。
  33. 抽象类描述事物的信息有可能不足。
  34. 2,一般类中不能定义抽象方法,只能定非抽象方法。
  35. 抽象类中可定义抽象方法,同时也可以定义非抽象方法。
  36. 3,一般类可以被实例化。
  37. 抽象类不可以被实例化。
  38. 5,抽象类一定是个父类吗?
  39. 是的。因为需要子类覆盖其方法后才可以对子类实例化。
  40. */
  41. abstract class Demo
  42. {
  43. abstract /*抽象*/ void show();
  44. }
  45. /*
  46. class DemoA extends Demo
  47. {
  48. void show()
  49. {
  50. System.out.println("demoa show");
  51. }
  52. }
  53. class DemoB extends Demo
  54. {
  55. void show()
  56. {
  57. System.out.println("demob show");
  58. }
  59. }
  60. */
  61. abstract class 犬科
  62. {
  63. abstract void 吼叫();
  64. }
  65. class extends 犬科
  66. {
  67. void 吼叫()
  68. {
  69. System.out.println("汪汪");
  70. }
  71. }
  72. class extends 犬科
  73. {
  74. void 吼叫()
  75. {
  76. System.out.println("嗷嗷");
  77. }
  78. }
  79. class AbstractDemo
  80. {
  81. public static void main(String[] args)
  82. {
  83. System.out.println("Hello World!");
  84. }
  85. }

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,16人围观)

还没有评论,来说两句吧...

相关阅读