爪哇 中的抽象类
抽象类是声明为抽象的类,可以具有抽象或非抽象方法。无法实例化抽象类。它可以由子类扩展以实现抽象方法,并且可以使用或覆盖具体方法。
爪哇 中的抽象方法
抽象方法是没有实现的方法,即没有任何人。
1 2 3 4 |
抽象 类 形状 { 上市 抽象 双 计算面积(); } |
什么时候需要Java中的抽象类?
让’借助示例了解它。您具有Shape类,并且它具有一些方法,例如draw(),calcualteArea()等。绘制形状对于所有形状都是通用的,但是每种形状的computeArea()不同。
例如:
对于矩形,它将被计算为长度*宽度,对于圆形,将被计算为pi *半径^ 2。
因此,通过上述行为,我们将在shape类中实现draw()方法并创建calcualteArea()作为抽象方法,因此,如果您有一些常见行为和某些特定行为,请使您的类抽象化。
让’s创建一个抽象类,如Shape和Rectangle,Circle类作为具体类。
爪哇 中的Abstract类的示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
包 组织 . Arpit . 爪哇 2blog ; 抽象 类 形状 { 上市 虚空 画 () { 系统 . 出 . 打印 ("形状类中的绘制方法"); } 上市 抽象 双 计算面积(); } 类 长方形 延伸 形状 { 双 长度 ; 双 宽度 ; 上市 长方形 ( 双 长度 , 双 宽度 ) { 超 (); 这个 . 长度 = 长度 ; 这个 . 宽度 = 宽度 ; } @ 覆写 上市 双 计算面积() { 返回 长度* 宽度 ; } } 类 圈 延伸 形状 { 双 半径 ; 上市 圈 ( 双 半径 ) { 超 (); 这个 . 半径 = 半径 ; } @ 覆写 上市 双 计算面积() { 返回 3.14* 半径* 半径 ; } } |
Create a 主要 类 named “AbstractClassMain”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
包 组织 . Arpit . 爪哇 2blog ; 上市 类 AbstactClassMain { 上市 静态的 虚空 主要( 串 [] args ) { 系统 . 出 . 打印 (“ ===========================”); 长方形 记录 = 新 长方形 (3, 4); 记录 . 画 (); 系统 . 出 . 打印 (“矩形的面积是”+ 记录 .计算面积()); 系统 . 出 . 打印 (“ ===========================”); 圈 ir = 新 圈 (3); ir . 画 (); 系统 . 出 . 打印 (“圈的面积是”+ ir .计算面积()); 系统 . 出 . 打印 (“ ===========================”); } } |
形状类中的绘制方法
矩形的面积是12.0
===========================
形状类中的绘制方法
圆的面积是28.259999999999998
===========================
让’考虑一些情况以更好地理解Java中的抽象类:
情况1:类中可能有零个抽象方法,但仍然可以将类声明为抽象。
回答:
是的,即使您不声明,也可以将类声明为抽象’该类中没有任何抽象方法。
例如:
1 2 3 |
抽象 类 形状 { |
上市 虚空 画 (){System.out.println(“形状类中的绘制方法”); } }
情况2:类包含抽象方法,但有可能不声明 类 作为摘要?
回答:
不,必须将类声明为Abstract,但是它包含abstract方法。
1 2 3 4 5 6 7 8 9 10 11 |
类 形状 { 上市 虚空 画 () { 系统 . 出 . 打印 ("形状类中的绘制方法"); } 上市 抽象 双 计算面积(); } |
您将得到编译错误:
- 在第1行:“Shape类型必须是抽象类才能定义抽象方法”
- 在第7行:“Shape类型中的抽象方法calculateArea只能由抽象类定义”
如果类中有抽象方法,则必须在Java中将类声明为抽象类
情况3:您可以声明 类 既是最终的又是抽象的?
回答:
不可以,您不能同时将类声明为final和abstract。最终意味着没有其他类可以扩展该类,而抽象意味着该类必须由任何其他类扩展。
情况4:您可以实例化吗 抽象 爪哇 中的类?
回答:
不,您不能实例化抽象类。
您无法在Java中实例化抽象类
情况5:如果要在Java中扩展抽象类,是否需要实现该类的所有抽象方法?
回答:
是的,除非子类也是java中的抽象类,否则您需要实现超类的所有抽象方法。
那’关于Java中的抽象类的全部内容。