抽象是隐藏实现细节并仅向用户显示功能的过程。
另一种方式,它只向用户显示重要内容并隐藏内部细节。 下面是一个示例,其中创建了一个抽象类并重写了抽象方法。但我不明白的是它是如何隐藏实现细节的?
abstract class Bank
{
abstract int getRateOfInterest();
}
class SBI extends Bank
{
int getRateOfInterest()
{
return 7;
}
}
class PNB extends Bank
{
int getRateOfInterest()
{
return 8;
}
}
class TestBank{
public static void main(String args[])
{
Bank b;
b=new SBI();
System.out.println("Rate of Interest is: "+b.getRateOfInterest()+" %");
b=new PNB();
System.out.println("Rate of Interest is: "+b.getRateOfInterest()+" %");
}
}
答案 0 :(得分:3)
代码中的抽象是抽象类本身:
abstract class Bank {
abstract int getRateOfInterest();
}
其余是实施(以及实施细节),具体为:类PNB
和SBI
但是我不明白的是它是如何隐藏实现细节的?
想象一下,您有一个银行比较引擎,它由BankComparisonEngine
类表示。它只需要Bank
(抽象类)作为参数,然后获取其利率并将其保存到其内部数据库,如下所示:
class BankComparisonEngine {
public void saveInterestRateOf(Bank bank) {
int rate = bank.getRateOfInterest();
// Save it somwehere to reuse later
}
}
如何隐藏实施细节?好吧,BankComparisonEngine
不知道getRateOfInterest()
具体实现的Bank
方法是如何工作的(即:PNB.getRateOfInterest()
或SBI.getRateOfInterest()
已实现)。它只知道它是一个返回int
的方法(它应该返回一个利率)。 实现细节隐藏在扩展abstract class Bank
的具体类中。