Una clase concreta es una clase que tiene una implementación para todos sus métodos. No pueden tener ningún método no implementado. También puede extender una clase abstracta o implementar una interfaz siempre que implemente todos sus métodos. Es una clase completa y puede ser instanciada.
En otras palabras, podemos decir que cualquier clase que no sea abstracta es una clase concreta.
Condición necesaria para una clase concreta: Debe haber una implementación para todos y cada uno de los métodos.
Ejemplo: La siguiente imagen muestra tres clases Forma, Rectángulo y Círculo. La forma es abstracta, mientras que el rectángulo y el círculo son concretos y heredan la forma. Esto se debe a que Rectangle y Circle implementan el método area().
Ejemplo 1: El siguiente código muestra una clase concreta simple:
// Java program to illustrate concrete class // Concrete Class class Main { // this method calculates // product of two numbers static int product(int a, int b) { return a * b; } // this method calculates // sum of two numbers static int sum(int a, int b) { return a + b; } // main method public static void main(String args[]) { int p = product(5, 10); int s = sum(5, 10); // print product System.out.println("Product: " + p); // print sum System.out.println("Sum: " + s); } }
Product: 50 Sum: 15
Ejemplo 2: El siguiente código ilustra una clase concreta que extiende una clase abstracta. El método product() en la interfaz X es implementado por la clase Product pero no implementa el método sum(), por lo que tiene que ser abstracto. Mientras que la clase Main implementa el método no implementado sum(), por lo tanto, no hay métodos no implementados. Por lo tanto, es una clase concreta.
// Java program to illustrate concrete class // This is an interface interface X { int product(int a, int b); int sum(int a, int b); } // This is an abstract class abstract class Product implements X { // this method calculates // product of two numbers public int product(int a, int b) { return a * b; } } // This is a concrete class that implements class Main extends Product { // this method calculates // sum of two numbers public int sum(int a, int b) { return a + b; } // main method public static void main(String args[]) { Main ob = new Main(); int p = ob.product(5, 10); int s = ob.sum(5, 10); // print product System.out.println("Product: " + p); // print sum System.out.println("Sum: " + s); } }
Product: 50 Sum: 15