{"id":10541,"date":"2015-08-29T00:56:55","date_gmt":"2015-08-29T04:56:55","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10541"},"modified":"2015-08-24T10:36:38","modified_gmt":"2015-08-24T14:36:38","slug":"example-illustrating-inheritance-and-abstract-classes-2","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10541","title":{"rendered":"Example illustrating inheritance and abstract classes"},"content":{"rendered":"<pre>***********************************\r\n# Example illustrating inheritance and abstract classes.\r\n\r\n\u00a0\u00a0\u00a0 * Shape.java The parent class (abstract) for all closed, open, curved, and straight-edged shapes.\r\n\u00a0\u00a0\u00a0 * Curve.java An (abstract) curved Shape (open or closed).\r\n\u00a0\u00a0\u00a0 * StraightEdgedShape.java A Shape with straight edges (open or closed).\r\n\u00a0\u00a0\u00a0 * Measurable.java Interface defining classes with measurable areas.\r\n\u00a0\u00a0\u00a0 * Circle.java A circle that extends Shape and implements Measurable.\r\n\u00a0\u00a0\u00a0 * MeasureUtil.java Operates on Measurable instances.\r\n\u00a0\u00a0\u00a0 * Polygon.java A closed Shape with straight edges; extends StraightEdgedShape and implements Measurable.\r\n\u00a0\u00a0\u00a0 * Rectangle.java A rectangle that satisfies the Measurable interface; extends Polygon.\r\n\u00a0\u00a0\u00a0 * MeasureTest.java Driver for example.\r\n**************************************\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nShape.java \r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\/** The parent class for all closed, open, curved, and \r\n\u00a0*\u00a0 straight-edged shapes.\r\n\u00a0*\r\n\u00a0############################\r\npublic abstract class Shape {\r\n\u00a0 protected int x, y;\r\n\r\n\u00a0 public int getX() {\r\n\u00a0\u00a0\u00a0 return(x);\r\n\u00a0 }\r\n\r\n\u00a0 public void setX(int x) {\r\n\u00a0\u00a0\u00a0 this.x = x;\r\n\u00a0 }\r\n\r\n\u00a0 public int getY() {\r\n\u00a0\u00a0\u00a0 return(y);\r\n\u00a0 }\r\n\r\n\u00a0 public void setY(int y) {\r\n\u00a0\u00a0\u00a0 this.y = y;\r\n\u00a0 }\r\n}\r\n#############################\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nCurve.java An (abstract) curved Shape (open or closed)\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\/** A curved shape (open or closed). Subclasses will include\r\n\u00a0*\u00a0 arcs and circles.\r\n\u00a0*\r\n***********************\r\n\r\npublic abstract class Curve extends Shape {}\r\n##############################\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nStraightEdgedShape.java A Shape with straight edges (open or closed). \r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\/** A Shape with straight edges (open or closed). Subclasses\r\n\u00a0*\u00a0 will include Line, LineSegment, LinkedLineSegments,\r\n\u00a0*\u00a0 and Polygon.\r\n\u00a0*\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\npublic abstract class StraightEdgedShape extends Shape {}\r\n################################\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nMeasurable.java Interface defining classes with measurable areas\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\/** Used in classes with measurable areas. \r\n\u00a0*\r\n\u00a0**************\r\n\r\npublic interface Measurable {\r\n\u00a0 double getArea();\r\n}\r\n#################################\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nCircle.java A circle that extends Shape and implements Measurable.\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\/** A circle. Since you can calculate the area of\r\n\u00a0*\u00a0 circles, class implements the Measurable interface.\r\n\u00a0*\r\n***********************************\r\npublic class Circle extends Curve implements Measurable {\r\n\u00a0 private double radius;\r\n\r\n\u00a0 public Circle(int x, int y, double radius) {\r\n\u00a0\u00a0\u00a0 setX(x);\r\n\u00a0\u00a0\u00a0 setY(y);\r\n\u00a0\u00a0\u00a0 setRadius(radius);\r\n\u00a0 }\r\n\r\n\u00a0 public double getRadius() {\r\n\u00a0\u00a0\u00a0 return(radius);\r\n\u00a0 }\r\n\r\n\u00a0 public void setRadius(double radius) {\r\n\u00a0\u00a0\u00a0 this.radius = radius;\r\n\u00a0 }\r\n\r\n\u00a0 \/** Required for Measurable interface. *\/\r\n\r\n\u00a0 public double getArea() {\r\n\u00a0\u00a0\u00a0 return(Math.PI * radius * radius);\r\n\u00a0 }\r\n}\r\n############################\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nMeasureUtil.java Operates on Measurable instances\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\/** Some operations on Measurable instances. \r\n\u00a0*\r\n\r\n************************\r\npublic class MeasureUtil {\r\n\u00a0 public static double maxArea(Measurable m1,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Measurable m2) {\r\n\u00a0\u00a0\u00a0 return(Math.max(m1.getArea(), m2.getArea()));\r\n\u00a0 }\r\n\r\n\u00a0 public static double totalArea(Measurable[] mArray) {\r\n\u00a0\u00a0\u00a0 double total = 0;\r\n\u00a0\u00a0\u00a0 for(int i=0; i\r\n~~~~~~~~~~~~~~~~~~~~~~<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>*********************************** # Example illustrating inheritance and abstract classes. \u00a0\u00a0\u00a0 * Shape.java The parent class (abstract) for all closed, open, curved, and straight-edged shapes. \u00a0\u00a0\u00a0 * Curve.java An (abstract) curved Shape (open or closed). \u00a0\u00a0\u00a0 * StraightEdgedShape.java A Shape with straight edges (open or closed). \u00a0\u00a0\u00a0 * Measurable.java Interface defining classes with measurable areas. \u00a0\u00a0\u00a0 * &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10541\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1417,1424],"tags":[706,308,285],"class_list":["post-10541","post","type-post","status-publish","format-standard","hentry","category-code-programming-samples--","category-javaj2eej2me","tag-code","tag-java","tag-285","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":26567,"url":"http:\/\/bangla.sitestree.com\/?p=26567","url_meta":{"origin":10541,"position":0},"title":"Example illustrating inheritance and abstract classes #Programming Code Examples #Java\/J2EE\/J2ME #Object Oriented Programming","author":"Author-Check- Article-or-Video","date":"April 28, 2021","format":false,"excerpt":"*********************************** # Example illustrating inheritance and abstract classes. * Shape.java The parent class (abstract) for all closed, open, curved, and straight-edged shapes. * Curve.java An (abstract) curved Shape (open or closed). * StraightEdgedShape.java A Shape with straight edges (open or closed). * Measurable.java Interface defining classes with measurable areas. *\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10539,"url":"http:\/\/bangla.sitestree.com\/?p=10539","url_meta":{"origin":10541,"position":1},"title":"Example illustrating inheritance and abstract classes","author":"","date":"August 2, 2015","format":false,"excerpt":"illustrating inheritance \u098f\u09ac\u0982 abstract classes \u098f\u09b0 \u0989\u09a6\u09be\u09b9\u09b0\u09a3 Shape.java \u09b8\u09ac, \u09ac\u09a6\u09cd\u09a7 \u0996\u09cb\u09b2\u09be, \u09ac\u09be\u0981\u0995\u09be, \u098f\u09ac\u0982 \u09b8\u09cb\u099c\u09be \u09aa\u09be\u09b0\u09cd\u09b6\u09cd\u09ac\u09c7 \u09a7\u09be\u09b0\u09ac\u09bf\u09b6\u09bf\u09b7\u09cd\u099f \u0986\u0995\u09be\u09b0 \u098f\u09b0 \u099c\u09a8\u09cd\u09af \u09aa\u09cd\u09af\u09be\u09b0\u09c7\u09a8\u09cd\u099f \u0995\u09cd\u09b2\u09be\u09b8 (\u09b8\u09be\u09b0\u09be\u0982\u09b6)\u0964 Curve.java \u098f\u0995\u099f\u09bf (\u09b8\u09be\u09b0\u09be\u0982\u09b6) \u09ac\u09be\u0981\u0995\u09be \u0986\u0995\u09be\u09b0 (\u0996\u09cb\u09b2\u09be \u09ac\u09be \u09ac\u09a8\u09cd\u09a7)\u0964 StraightEdgedShape.java \u09b8\u09b0\u09be\u09b8\u09b0\u09bf \u09a7\u09be\u09b0 \u09b8\u09ae\u09cd\u09ac\u09b2\u09bf\u09a4 \u098f\u0995\u099f\u09bf \u0986\u0995\u09c3\u09a4\u09bf (\u0996\u09cb\u09b2\u09be \u09ac\u09be \u09ac\u09a8\u09cd\u09a7)\u0964 Measurable.java \u09aa\u09b0\u09bf\u09ae\u09be\u09aa\u09af\u09cb\u0997\u09cd\u09af \u098f\u09b2\u09be\u0995\u09be\u09af\u09bc \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09ab\u09c7\u09b8 \u09a1\u09bf\u09ab\u09be\u0987\u09a8\u09bf\u0982 \u0995\u09cd\u09b2\u09be\u09b8\u0964 Circle.java \u098f\u0995\u099f\u09bf \u09ac\u09c3\u09a4\u09cd\u09a4 \u09af\u09be \u0986\u0995\u09be\u09b0\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10536,"url":"http:\/\/bangla.sitestree.com\/?p=10536","url_meta":{"origin":10541,"position":2},"title":"Code examples for interfaces","author":"","date":"August 29, 2015","format":false,"excerpt":"**************************** Code examples for interfaces: \u00a0\u00a0\u00a0 * Class1.java implements Interface1.java \u00a0\u00a0\u00a0 * Abstract Class2.java implements Interface1.java and Interface2.java \u00a0\u00a0\u00a0 * Class3.java extends abstract class Class2.java \u00a0\u00a0\u00a0 * Interface3.java extends Interface1.java and Interface2.java *************************** ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Class1.java ~~~~~~~~~~~~~~~~~~~~~~~~~~~ \/\/ This class is not abstract, so it must provide \/\/ implementations of method1\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26565,"url":"http:\/\/bangla.sitestree.com\/?p=26565","url_meta":{"origin":10541,"position":3},"title":"Code examples for interfaces #Programming Code Examples #Java\/J2EE\/J2ME #Object Oriented Programming","author":"Author-Check- Article-or-Video","date":"April 28, 2021","format":false,"excerpt":"**************************** Code examples for interfaces: * Class1.java implements Interface1.java * Abstract Class2.java implements Interface1.java and Interface2.java * Class3.java extends abstract class Class2.java * Interface3.java extends Interface1.java and Interface2.java *************************** ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Class1.java ~~~~~~~~~~~~~~~~~~~~~~~~~~~ \/\/ This class is not abstract, so it must provide \/\/ implementations of method1 and method2. public class\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10252,"url":"http:\/\/bangla.sitestree.com\/?p=10252","url_meta":{"origin":10541,"position":4},"title":"Template illustrating the second approach for creating a class with thread behavior.","author":"","date":"August 25, 2015","format":false,"excerpt":"Template illustrating the second approach for creating a class with thread behavior. In this case, the class implements the Runnable interface while providing a run method for thread execution. public class ThreadedClass extends AnyClass implements Runnable { \u00a0 public void run() { \u00a0\u00a0\u00a0 \/\/ Thread behavior here. \u00a0 } \u00a0\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":65838,"url":"http:\/\/bangla.sitestree.com\/?p=65838","url_meta":{"origin":10541,"position":5},"title":"SCJP: Class Declarations #Java Short Notes #SCJP","author":"Sayed","date":"July 16, 2021","format":false,"excerpt":"class declarations Start with modifiers such as public, private followed by class keyword The class name, with the initial letter capitalized The name of the class's parent (superclass), preceded by the keyword extends (if any). A class can only extend (subclass) one parent. list of interfaces implemented by the class,\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10541"}],"version-history":[{"count":1,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10541\/revisions"}],"predecessor-version":[{"id":10542,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10541\/revisions\/10542"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10541"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}