抽象是隐藏实现细节并仅向用户显示功能的过程。
另一种方式是,它只向用户显示重要的内容并隐藏内部细节。
下面是一个创建抽象类并重写抽象方法的示例。但我不明白的是它是如何隐藏实现细节的?
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()+" %");
}
}
The 抽象在你的代码中是抽象类本身:
abstract class Bank {
abstract int getRateOfInterest();
}
剩下的就是执行(以及实现细节),特别是:类PNB
and SBI
但我不明白的是它是如何隐藏实现细节的?
假设您有一个银行比较引擎,由BankComparisonEngine
班级。只需要一个Bank
(abstractclass) 作为参数,然后获取其利率并将其保存到其内部数据库,如下所示:
class BankComparisonEngine {
public void saveInterestRateOf(Bank bank) {
int rate = bank.getRateOfInterest();
// Save it somwehere to reuse later
}
}
实施细节究竟是如何隐藏的?出色地,BankComparisonEngine
不知道怎么办getRateOfInterest()
具体实现方法Bank
作品(即:PNB.getRateOfInterest()
or SBI.getRateOfInterest()
已实施)。它只知道这是一个返回值的方法int
(并且它应该返回利率)。这实施细节隐藏在扩展的具体类中abstract class Bank
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)