{"id":17504,"date":"2023-08-07T10:01:17","date_gmt":"2023-08-07T10:01:17","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=17504"},"modified":"2023-08-07T10:01:17","modified_gmt":"2023-08-07T10:01:17","slug":"concrete-class-in-java","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/","title":{"rendered":"Concrete class in Java"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg\" alt=\"\" \/><\/p>\n<p>A concrete class is one that provides implementations for all its methods, leaving no room for unimplemented methods. Such a class can either extend an abstract class or implement an interface, as long as it fulfills all the required method implementations. Being a complete class, it is capable of being instantiated.<\/p>\n<p>Put simply, any class that is not abstract is considered a concrete class.<\/p>\n<h2>Necessary condition for a concrete class in Java<\/h2>\n<p>In Java, a concrete class is a class that can be instantiated, and it must meet the following necessary conditions:<\/p>\n<ul>\n<li><strong>It must not be declared as abstract:<\/strong> A concrete class cannot have the abstract keyword in its declaration. Abstract classes cannot be instantiated, and they may contain abstract methods (methods without implementation).<\/li>\n<li><strong>It must provide implementations for all its methods:<\/strong> A concrete class should implement all the methods declared in its class definition. Unlike abstract classes, concrete classes cannot leave any methods without implementation.<\/li>\n<li><strong>It must not extend an abstract class without implementing its abstract methods:<\/strong> If a concrete class extends an abstract class, it must provide concrete (non-abstract) implementations for all the abstract methods declared in the parent abstract class.<\/li>\n<li><strong>It must not fail to implement methods from implemented interfaces:<\/strong> If a concrete class implements one or more interfaces, it must provide concrete implementations for all the methods declared in those interfaces.<\/li>\n<\/ul>\n<h2>Example of Concrete Class in Java<\/h2>\n<p>Let&#8217;s consider an example of a concrete class in Java called Rectangle.<\/p>\n<pre><code>public class Rectangle {\n    private double width;\n    private double height;\n\n    public Rectangle(double width, double height) {\n        this.width = width;\n        this.height = height;\n    }\n\n    public double getArea() {\n        return width * height;\n    }\n\n    public double getPerimeter() {\n        return 2 * (width + height);\n    }\n\n    public void printDetails() {\n        System.out.println(\"Rectangle - Width: \" + width + \", Height: \" + height);\n    }\n}<\/code><\/pre>\n<p><strong>Explanation<\/strong><br \/>\nIn the example above, we have a class named Rectangle, which represents a simple rectangle shape. This class is a concrete class because it satisfies the necessary conditions for being concrete:<\/p>\n<p><strong>1. It is not declared as abstract:<\/strong> There is no abstract keyword in the class declaration, making it a concrete class.<br \/>\n<strong>2. It provides implementations for all its methods:<\/strong> The class has three methods: getArea(), getPerimeter(), and printDetails(). Each of these methods has a complete implementation, leaving no methods without an implementation.<br \/>\n<strong>3. It does not extend an abstract class without implementing its abstract methods:<\/strong> In this case, the Rectangle class does not extend any other class, so there&#8217;s no abstract class to implement.<br \/>\n<strong>4. It does not fail to implement methods from implemented interfaces:<\/strong> The Rectangle class does not implement any interfaces, so this condition does not apply.<\/p>\n<p>The Rectangle class has two private instance variables width and height, representing the dimensions of the rectangle. The constructor initializes these variables with the provided values. The getArea() method calculates the area of the rectangle, the getPerimeter() method calculates its perimeter, and the printDetails() method prints the width and height of the rectangle to the console.<\/p>\n<p>Since the Rectangle class meets all the necessary conditions for a concrete class, you can create instances of it and use its methods without any issues. For example:<\/p>\n<pre><code>public class Main {\n    public static void main(String[] args) {\n        Rectangle rectangle = new Rectangle(5.0, 3.0);\n        System.out.println(\"Area: \" + rectangle.getArea());\n        System.out.println(\"Perimeter: \" + rectangle.getPerimeter());\n        rectangle.printDetails();\n    }\n}<\/code><\/pre>\n<p><strong>Output:<\/strong><\/p>\n<pre><code>Area: 15.0\nPerimeter: 16.0\nRectangle - Width: 5.0, Height: 3.0<\/code><\/pre>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_17495 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_17495 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_17495 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_17495 .wpsm_nav-tabs > li.active > a, #tab_container_17495 .wpsm_nav-tabs > li.active > a:hover, #tab_container_17495 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_17495 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_17495 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_17495 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_17495 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_17495 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_17495 .wpsm_nav-tabs > li > a:hover , #tab_container_17495 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_17495 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_17495 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_17495 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_17495 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_17495 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_17495 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_17495 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_17495 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_17495 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_17495 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_17495 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_17495\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_17495\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_17495_1\" aria-controls=\"tabs_desc_17495_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_17495\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_17495_1\">\r\n\t\t\t\t\t\t\t\t<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">public class Rectangle {\r\n    private double width;\r\n    private double height;\r\n\r\n    public Rectangle(double width, double height) {\r\n        this.width = width;\r\n        this.height = height;\r\n    }\r\n\r\n    public double getArea() {\r\n        return width * height;\r\n    }\r\n\r\n    public double getPerimeter() {\r\n        return 2 * (width + height);\r\n    }\r\n\r\n    public void printDetails() {\r\n        System.out.println(\"Rectangle - Width: \" + width + \", Height: \" + height);\r\n    }\r\n}\r\npublic class Main {\r\n    public static void main(String[] args) {\r\n        Rectangle rectangle = new Rectangle(5.0, 3.0);\r\n        System.out.println(\"Area: \" + rectangle.getArea());\r\n        System.out.println(\"Perimeter: \" + rectangle.getPerimeter());\r\n        rectangle.printDetails();\r\n    }\r\n}<\/pre>\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_17495 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_17495 a\"),jQuery(\"#tab-content_17495\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p>The output confirms that the Rectangle class is a concrete class and can be instantiated and used successfully.<\/p>\n<p><strong>Conclusion<\/strong><br \/>\nIn Java, a concrete class is a class that can be instantiated and is complete in the sense that it provides implementations for all its methods. It cannot have any unimplemented methods, and it must not be declared as abstract. Concrete classes can extend other classes and implement interfaces, as long as they fulfill the requirements of those extended classes and implemented interfaces. These classes are essential for creating objects and representing real-world entities in a program.<\/p>\n<h2>FAQs related to concrete classes in Java:<\/h2>\n<p><strong>1. What is the purpose of a concrete class in Java?<\/strong><br \/>\nConcrete classes provide the actual implementation of a class and are used to create objects in Java. They encapsulate data and behavior within their methods, allowing programmers to work with real-world entities and define specific functionalities.<\/p>\n<p><strong>2. Can a concrete class be inherited in Java?<\/strong><br \/>\nYes, a concrete class can be inherited in Java. Other classes can extend a concrete class using the extends keyword, allowing them to inherit its properties and methods. Concrete classes can also be extended by other concrete classes, creating a class hierarchy.<\/p>\n<p><strong>3. Can a concrete class have abstract methods in Java?<\/strong><br \/>\nNo, a concrete class cannot have abstract methods. Abstract methods lack implementation, and a concrete class must provide concrete implementations for all its methods.<\/p>\n<p><strong>4. Can a concrete class implement multiple interfaces in Java?<\/strong><br \/>\nYes, a concrete class can implement multiple interfaces in Java using the implements keyword. By doing so, the class must provide concrete implementations for all the methods declared in each interface.<\/p>\n<p><strong>5. Can we create an instance of an abstract class or an interface in Java?<\/strong><br \/>\nNo, we cannot directly create an instance of an abstract class or an interface in Java. They are incomplete classes that may have abstract methods without implementation. However, we can create objects of concrete classes that extend an abstract class or implement an interface.<\/p>\n<p><strong>6. When should I use a concrete class in Java?<\/strong><br \/>\nYou should use a concrete class when you want to create objects that represent specific entities with well-defined behavior and attributes. Concrete classes are suitable for most situations where you need complete implementations and the ability to create instances. If you have common functionality shared across multiple classes, you may consider using abstract classes or interfaces to define shared methods.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A concrete class is one that provides implementations for all its methods, leaving no room for unimplemented methods. Such a class can either extend an abstract class or implement an interface, as long as it fulfills all the required method implementations. Being a complete class, it is capable of being instantiated. Put simply, any class [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[143],"tags":[],"class_list":["post-17504","post","type-post","status-publish","format-standard","hentry","category-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Concrete class in Java<\/title>\n<meta name=\"description\" content=\"A concrete class is one that provides implementations for all its methods, leaving no room for unimplemented methods.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Concrete class in Java\" \/>\n<meta property=\"og:description\" content=\"A concrete class is one that provides implementations for all its methods, leaving no room for unimplemented methods.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-07T10:01:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Concrete class in Java\",\"datePublished\":\"2023-08-07T10:01:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/\"},\"wordCount\":873,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg\",\"articleSection\":[\"Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/\",\"name\":\"Concrete class in Java\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg\",\"datePublished\":\"2023-08-07T10:01:17+00:00\",\"description\":\"A concrete class is one that provides implementations for all its methods, leaving no room for unimplemented methods.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/java\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Concrete class in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Concrete class in Java","description":"A concrete class is one that provides implementations for all its methods, leaving no room for unimplemented methods.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/","og_locale":"en_US","og_type":"article","og_title":"Concrete class in Java","og_description":"A concrete class is one that provides implementations for all its methods, leaving no room for unimplemented methods.","og_url":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2023-08-07T10:01:17+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Concrete class in Java","datePublished":"2023-08-07T10:01:17+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/"},"wordCount":873,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg","articleSection":["Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/","url":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/","name":"Concrete class in Java","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg","datePublished":"2023-08-07T10:01:17+00:00","description":"A concrete class is one that provides implementations for all its methods, leaving no room for unimplemented methods.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1691402426660-TOPIC%20%281%29.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/concrete-class-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/prepbytes.com\/blog\/category\/java\/"},{"@type":"ListItem","position":3,"name":"Concrete class in Java"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/17504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=17504"}],"version-history":[{"count":2,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/17504\/revisions"}],"predecessor-version":[{"id":17509,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/17504\/revisions\/17509"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=17504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=17504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=17504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}