抽象于 Java
什么是抽象 Java?
抽象化 是面向对象编程的概念,它只“显示”必要的属性并“隐藏”不必要的信息。抽象的主要目的是向用户隐藏不必要的细节。抽象是从更大的池中选择数据,只向用户显示对象的相关细节。它有助于减少编程复杂性和工作量。它是 OOP 最重要的概念之一。
点击 点击这里 如果视频无法访问
让我们通过示例来学习 OOP 中的抽象:
假设你想创建一个银行应用程序,并被要求收集有关客户的所有信息。你很可能会得到以下有关客户的信息
但是,创建银行应用程序并不需要上述所有信息。因此,您只需选择对您有用的信息即可。 银行申请 来自该池。姓名、地址、税务信息等数据对于银行应用程序来说是有意义的,这是 OOP 中的抽象示例
由于我们从更大的池中获取/删除/选择了客户信息,因此该过程称为抽象 面向对象。但是,提取的相同信息可以用于广泛的应用。例如,您可以将相同的数据用于医院应用程序、求职门户应用程序、政府数据库等,而无需进行太多修改。因此,它成为您的主数据。这是 OOP 中抽象的一个优势。
抽象和封装的区别
抽象化 | 封装 |
---|---|
面向对象编程中的抽象解决了设计层面的问题。 | 封装解决了其实现层面的问题。 |
编程中的抽象是指隐藏不需要的细节,同时显示最重要的信息。 | 封装意味着将代码和数据绑定到一个单元中。 |
数据抽象 Java 允许关注信息对象必须包含的内容 | 封装 意味着出于安全原因隐藏对象执行某项操作的内部细节或机制。 |
抽象类和接口的区别
抽象类 | 接口 |
---|---|
抽象类可以同时具有抽象方法和非抽象方法。 | 接口只能有抽象方法。 |
它不支持多重继承。 | 它支持多重继承。 |
它可以提供接口的实现。 | 它不能提供抽象类的实现。 |
抽象类可以有受保护的方法和抽象的公共方法。 | 接口只能有公共抽象方法。 |
抽象类可以具有带有任何访问说明符的 final、static 或 static final 变量。 | 接口只能有一个公共静态最终变量。 |
什么是抽象类?
抽象类 是 Java,声明一个或多个抽象方法。这些类可以有抽象方法,也可以有具体方法。普通类不能有抽象方法。抽象类是包含至少一个抽象方法的类。我们可以通过以下方式理解这个概念 Java 中的形状示例.
考虑以下类层次结构,该层次结构由一个 Shape 类组成,该类由三个类 Rectangle、Circle 和 Triangle 继承。创建 Shape 类是为了保存三个类 Rectangle、Circle 和 Triangle 共享的公共属性和方法。calculateArea() 是所有三个子类共享的一种方法,存在于 Shape 类中。
现在,假设你编写代码来为上面描述的类创建对象。让我们观察一下这些 物体将会在现实世界中出现。 矩形类的对象将呈现矩形,这是我们在日常生活中常见的形状。
三角形类的对象将呈现三角形,这也是一种常见的日常形状。
但是在现实世界中,Shape 类的对象会是什么样子的呢?
如果你观察到 Shape 类在 我们的目标 继承权 和多态性。 但它不是为实例化而构建的。此类可以标记为 抽象. 抽象 java 类不能被实例化。
语法:
abstract class Shape{ // code }
您可能不将 Shape 类标记为抽象类,然后实例化它。但这样的对象在您的代码中毫无用处,并且会为潜在的错误留下空间。因此,这是不可取的。
什么是抽象方法 Java?
抽象方法 in Java,是一种只有方法定义但不包含实现的方法。没有主体的方法称为抽象方法。它必须在抽象类中声明。抽象方法永远不会是最终的,因为抽象类必须实现所有抽象方法。
众所周知,计算矩形、圆形和三角形面积的公式是不同的。继承类必须重写 calculateArea() 方法。在 Shape 类中定义它是没有意义的, 但我们需要确保所有继承类都具有该方法。
此类方法可以标记为 抽象。
语法:
abstract public void calculateArea();
对于 抽象方法,不需要实现。 仅定义了方法的签名。
抽象代码示例
abstract class Shape{ abstract void calculateArea(); } class guru99 extends Shape{ void calculateArea(){System.out.println("Area of Shape");} public static void main(String args[]){ Shape obj = new guru99(); obj.calculateArea(); } }
抽象的优点
- 使用抽象的主要好处是 代码编程 它允许您将几个相关的类分组为兄弟类。
- 面向对象编程中的抽象有助于降低软件设计和实现过程的复杂性。
Final 关键字 Java
final 修饰符适用于类、方法和变量。final 的含义在不同上下文中有所不同,但基本思想是相同的。
- final 类不能被继承
- 最终变量将成为常量,其值无法改变。
- final 方法不能被覆盖。这样做是出于安全原因,并且这些方法用于优化。
例如: :- 学习 abstract 和 final 关键词
步骤1) 将以下代码复制到编辑器中。
abstract class Shape{ final int b = 20; public void display(){ System.out.println("This is display method"); } abstract public void calculateArea(); } public class Rectangle extends Shape{ public static void main(String args[]){ Rectangle obj = new Rectangle(); obj.display(); //obj.b=200; } //public void calculateArea(){} }
步骤2) 保存、编译并运行代码。
步骤3) 错误 =?抽象方法未在 Rectangle 类中实现。要解决此问题,请取消注释第 15 行。
步骤4) 取消注释第 13 行。保存并编译代码。
步骤5) 错误 = ? 变量 b 是最终变量
何时使用抽象方法和抽象类?
抽象方法通常声明在两个或多个子类也通过不同的实现以不同的方式执行相同操作的地方。它还扩展了相同的抽象类并提供抽象方法的不同实现。
抽象类有助于描述行为的通用类型和面向对象编程的类层次结构。它还描述子类以提供抽象类的实现细节。
概要:
- 编程中的抽象是选择重要数据集的过程 摆件 在你的软件中并忽略那些不重要的。
- 一旦你使用数据抽象对对象进行了建模 Java,同一组数据可以用于不同的应用程序。