抽象如何帮助隐藏java中的实现细节?

hujrc8aj  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(442)

抽象是一个隐藏实现细节并只向用户显示功能的过程。
另一种方式是,它只向用户显示重要的内容,并隐藏内部细节。下面是一个创建抽象类并重写抽象方法的示例。但我不明白的是它是如何隐藏实现细节的?

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()+" %");    
 }
 }
w8biq8rn

w8biq8rn1#

代码中的抽象是抽象类本身:

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 .

相关问题