【发布时间】:2017-06-03 11:12:06
【问题描述】:
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()+" %");
}
}
所以我在书本和网上看到的是:“抽象是一个隐藏实现细节并只向用户显示功能的过程。”
所以我的问题是,如果我在 Bank 类中编写实现,它不会被隐藏吗?用户可以看到那个实现吗?
这里“隐藏”的实际意思是什么?
【问题讨论】:
-
你应该学会缩进你的代码,它让你和其他人更容易阅读。
-
我很抱歉,安迪
-
根据您的简单示例,是的,如果您的程序的其他部分被传递给
Bank的某个实例,它不会关心getRateOfInterest的实际计算方式,只有Bank提供获得它的手段。例如,SBI可以附加附加功能,但由于您程序的其他部分只处理Bank,他们不会知道,因此对他们隐藏了功能 -
abstract与concrete相反。即“在摘要中,您可以执行该操作”与“如果您在此处执行此操作就是会发生什么”
标签: java abstract abstraction