Java 具体类
一个 具体的类 是一个对其所有的方法都有实现的类。它们不能有任何未实现的方法。它也可以扩展一个抽象类或实现一个接口,只要它实现了它们的所有方法。它是一个完整的类,可以被实例化。
换句话说,我们可以说,任何不是抽象的类都是一个具体的类。
具体类的必要条件: 每一个方法都必须有一个实现。
例子: 下面的图片显示了三个类Shape, Rectangle和Circle。Shape是抽象的,而Rectangle和Circle是具体的,并且继承了Shape。这是因为 Rectangle 和 Circle 实现了 area() 方法。
例1:下面的代码显示了一个简单的具体类。
// 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
例2:下面的代码说明了一个具体的类扩展了一个抽象的类。接口X中的product()方法由类Product实现,但它没有实现sum()方法,因此它必须是抽象的。而Main类实现了未实现的sum()方法,因此没有未实现的方法。因此,它是一个具体的类。
// 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