抽象是隐藏实现细节并仅向用户显示功能的过程。
另一种方式是,它只向用户显示重要的东西,隐藏内部细节。下面是一个创建抽象类并重写抽象方法的示例。但我不明白的是,它是如何隐藏实现细节的?
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()+" %");
}
}
代码中的抽象就是抽象类本身:
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
不知道Bank
的具体实现的getRateOfInterest()
方法是如何工作的(即:pnb.getRateOfInterest()
或SBI.getRateOfInterest()
是如何实现的)。它只知道它是一个返回int
的方法(并且它应该返回利率)。实现细节隐藏在扩展抽象类库
的具体类中。
有些人将抽象定义为: 抽象是通过在基本功能上提供一个层来隐藏实现细节。 对对象的用户隐藏实现细节不是封装的一部分吗? 假设动物类有函数ate(),那么给对象的用户提供这个接口是封装还是抽象?或者提供函数名使用是抽象,方法实现部分的隐藏是封装。 我真的很困惑,因为在很多地方它是抽象的,很多人说实现细节隐藏是封装? 在这个问题中,答案是: 抽象=外部对象;封装(通过信息隐藏实现)=对象内部。 那么,这
我已经思考了很长时间关于“隐藏在Java中的实现”。嗯,我知道这是不可能的(至少在理论上),但是有一些库(例如ZIP文件)需要隐藏一些代码(因为如果任何人都能看到代码,他们将能够在不知道密码的情况下打开fe。zip文件)。 我知道有一种方法可以创建web服务,但使用某些库的应用程序可能是离线应用程序,因此web服务不可能对所有内容都适用。 你能帮我把它弄明白吗?
我浏览了很多帖子,但没有抓住要点。 我们能不能说:抽象=封装数据隐藏 或者不止这些!! 谢谢
问题内容: 是否可以在Java中定义私有抽象类?Java开发人员将如何编写如下的构造? 问题答案: 您不能使用Java中的方法。 当方法为时,子类无法访问它,因此它们无法覆盖它。 如果您想要类似的行为,则需要方法。 这是一个编译时错误,如果包含该关键字的方法声明中还包含关键字的任意一个,,,,,或。 和 子类不可能实现方法,因为方法不是子类继承的。因此永远不能使用这种方法。 资源: JLS-8.4
我最近刚刚开始学习如何使用swing,并且一直在遵循我在网上找到的教程。我基本上遵循了“逐字逐句”的教程,但我发现了一个错误: 记分板不是抽象的,并且不会覆盖ActionListener中的抽象方法actionPerformed(ActionEvent) 所以我的问题是,如果类不是抽象的,我如何将ActionListener实现到我的类(ScoreBoard)中? 下面是整个代码:(因为我不知道问
抽象用于向用户隐藏函数的内部功能。他们可以与函数交互并生成结果,但不知道结果是如何生成的。 简单来说,抽象就是用来对用户隐藏不相关的数据,以降低程序的复杂度。 在 Python 中借助 ABC 模块,我们可以实现抽象。 抽象类也可以作为其他类的基石,因为你不能为抽象类创建对象,所以访问元素的唯一方法是使用继承。