广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java中的抽象介绍
  • 451
分享到

Java中的抽象介绍

2024-04-02 19:04:59 451人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.抽象类和抽象方法2.何时在示例中使用抽象类和抽象方法3.封装与数据抽象4.抽象的优点前言: 数据抽象是一种仅向用户显示基本细节的属性。不向用户显示琐碎或非必需的单元。例如:汽

前言:

数据抽象是一种仅向用户显示基本细节的属性。不向用户显示琐碎或非必需的单元。例如:汽车被视为汽车而不是其单个组件。

数据抽象也可以定义为仅识别对象所需特征而忽略不相关细节的过程。对象的属性和行为将其与其他类似类型的对象区分开来,也有助于对对象进行分类/分组。

考虑一个男人开车的真实例子。男人只知道踩油门会提高车速或踩刹车会停车,但他不知道踩油门车速实际上是如何增加的,他不知道汽车的内部机制汽车或在汽车中执行油门、刹车等。这就是抽象。

在java中,抽象是通过接口和抽象类来实现的。我们可以使用接口实现 100% 的抽象。

1.抽象类和抽象方法

  • 抽象类是用抽象关键字声明的类。
  • 抽象方法是声明而没有实现的方法。
  • 一个抽象类可能有也可能没有所有的抽象方法。其中一些可以是具体的方法
  • 定义为抽象的方法必须始终在子类中重新定义,从而强制覆盖或使子类本身成为抽象的。
  • 任何包含一个或多个抽象方法的类也必须用抽象关键字声明。
  • 抽象类不能有对象。也就是说,抽象类不能直接用new operator实例化。
  • 抽象类可以具有参数化构造函数,并且默认构造函数始终存在于抽象类中。

2.何时在示例中使用抽象类和抽象方法

在某些情况下,我们希望定义一个超类来声明给定抽象的结构,而无需提供每个方法的完整实现。也就是说,有时我们会想要创建一个只定义一个泛化形式的超类,该泛化形式将被其所有子类共享,而将其留给每个子类来填充细节。

考虑一个经典的“形状”示例,可能用于计算机辅助设计系统或游戏模拟。基本类型是“形状”,每个形状都有颜色、大小等。由此,衍生出(继承)特定类型的形状——圆形、方形、三角形等——每一种都可能有额外的特征和行为。例如,某些形状可以翻转。某些行为可能会有所不同,例如当您要计算形状的面积时。类型层次体现了形状之间的相似性和差异性。


abstract class Shape {
 String color;

 abstract double area();
 public abstract String toString();

 public Shape(String color){
  System.out.println("Shape constructor called");
  this.color = color;
 }
 public String getColor() { return color; }
}
class Circle extends Shape {
 double radius;

 public Circle(String color, double radius){
  super(color);
  System.out.println("Circle constructor called");
  this.radius = radius;
 }

 @Override double area(){
  return Math.PI * Math.pow(radius, 2);
 }

 @Override public String toString(){
  return "Circle color is " + super.getColor()
   + "and area is : " + area();
 }
}
class Rectangle extends Shape {

 double length;
 double width;

 public Rectangle(String color, double length,double width){
  super(color);
  System.out.println("Rectangle constructor called");
  this.length = length;
  this.width = width;
 }

 @Override double area() { return length * width; }

 @Override public String toString(){
  return "Rectangle color is " + super.getColor()
   + "and area is : " + area();
 }
}
public class Test {
 public static void main(String[] args){
  Shape s1 = new Circle("Red", 2.2);
  Shape s2 = new Rectangle("Yellow", 2, 4);
  System.out.println(s1.toString());
  System.out.println(s2.toString());
 }
}

输出:

Shape constructor called
Circle constructor called
Shape constructor called
Rectangle constructor called
Circle color is Redand area is : 15.205308443374602
Rectangle color is Yellowand area is : 8.0

3.封装与数据抽象

  • 封装是数据隐藏(信息隐藏),抽象是细节隐藏(实现隐藏)。
  • 封装将数据和作用于数据的方法组合在一起,而数据抽象则处理将接口暴露给用户并隐藏实现细节。

4.抽象的优点

  • 它降低了查看事物的复杂性。
  • 避免代码重复并提高可重用性。
  • 有助于提高应用程序或程序的安全性,因为只向用户提供重要的细节。

到此这篇关于Java 中的抽象介绍的文章就介绍到这了,更多相关Java 中的抽象内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java中的抽象介绍

本文链接: https://www.lsjlt.com/news/158896.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中的抽象介绍
    目录1.抽象类和抽象方法2.何时在示例中使用抽象类和抽象方法3.封装与数据抽象4.抽象的优点前言: 数据抽象是一种仅向用户显示基本细节的属性。不向用户显示琐碎或非必需的单元。例如:汽...
    99+
    2022-11-12
  • Java中抽象类和接口介绍
    目录1、抽象类1.1 什么是抽象类?1.2 抽象类属于什么类型?1.3 抽象类怎么定义?1.4 抽象方法2、接口2.1 关于接口2.2 接口怎么定义?2.3 接口基础语法总结1、抽象...
    99+
    2022-11-12
  • Java接口的继承与抽象类介绍
    这篇文章主要讲解了“Java接口的继承与抽象类介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java接口的继承与抽象类介绍”吧!在实施接口中,我们利用interface语法,将inter...
    99+
    2023-06-02
  • C#抽象类的用法介绍
    假设有2个类,一个类是主力球员,一个类是替补球员。 public class NormalPlayer { public int ID { get; ...
    99+
    2022-11-13
  • C++抽象数据类型介绍
    公众号:Coder梁(ID:Coder_LT) 我们在学数据结构的时候,经常遇到的一个概念就是抽象数据类型(Abstract Data Type),简称ADT。 维基百科中的定义是:...
    99+
    2022-11-12
  • Java超详细介绍抽象类与接口的使用
    目录1.抽象类的语法和特性1.1语法1.2特性2.接口的语法和使用2.1语法2.2特性1.抽象类的语法和特性 1.1语法 1.在Java中,一个类如果被abstract 修饰称为抽象...
    99+
    2022-11-13
  • java中抽象类和接口的相同和不同点介绍
    目录前言一、抽象类是什么?二、接口是什么?三、抽象类和接口的异同点总结前言 本文简单介绍抽象类,接口以及它们的异同点,另附简单的代码举例。 一、抽象类是什么? 在 Java 语言中使...
    99+
    2022-11-12
  • PHP5接口和抽象类的语法介绍
    这篇文章主要讲解了“PHP5接口和抽象类的语法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP5接口和抽象类的语法介绍”吧!大家对PHP5接口和PHP5抽象类的语法了解有多少呢?下面...
    99+
    2023-06-17
  • Ubuntu中为Android简单介绍硬件抽象层(HAL)
              Android的硬件抽象层,简单来说,就是对Linux内核驱动程序...
    99+
    2022-06-06
    hal ubuntu 抽象 硬件抽象层 Android
  • C/C++中抽象类详解及其作用介绍
    目录概述抽象类 vs 具体类案例抽象类的作用总结概述 抽象类 (abstract class), 是一些不用来定义对象, 而只作为基类被继承的类. 由于抽象类常用作基类, 所以通常称...
    99+
    2022-11-12
  • C#中的WebRequest与WebResponse抽象类、DNS静态类、Ping类介绍
    一、概述 1、WebRequest: 对统一资源标识符 (URI) 发出请求。 这是一个 abstract 类。WebRequest的派生类:PackWebRequest、FileW...
    99+
    2022-11-13
  • Python Ast抽象语法树的介绍及应用详解
    目录引言1. AST简介 2. 创建AST2.1 Compile函数2.2 生成ast 3. 遍历AST3.1 ast.NodeTransfer3.2 ast.N...
    99+
    2022-11-11
  • Java中的抽象类
    目录 一、抽象类是什么?1.引入库2.读入数据 二、抽象类的特点注意 : 三、总结 一、抽象类是什么? 父类知道子类一定要完成某个功能,但是每个子类完成...
    99+
    2023-09-11
    java 开发语言
  • java中关于对象的详细介绍
    一、对象的创建步骤:(1)声名对象变量:对象变量的声明并没有创建对象,系统只是为该改变量分配一个引用空间。(2)对象的实例化:为对象分配空间,执行new运算符后的构造方法完成对象的初始化,并返回该对象的引用。过程:首先为对象分配内存空间,并...
    99+
    2014-08-23
    java入门 java 对象
  • Java对象与Java类的详细介绍
    本篇内容介绍了“Java对象与Java类的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录面向对象是什么Java类什么是类Java...
    99+
    2023-06-20
  • Java Apache common-pool对象池介绍
    目录对象生命周期Config详解代码说明ObjectPoolPooledObjectFactoryPooledObject方案提供了三种类型的pool前言; Apache commo...
    99+
    2022-11-13
  • java面向对象特性介绍
    Java面向对象的三大特性:封装、继承、多态。一、封装将类的信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作与访问。封装的实现步骤:修改属性的可见性:设为private创建getter/setter方法...
    99+
    2018-11-22
    java入门 java 面向对象 特性
  • Vue中的event对象介绍
    一、什么是event对象 event对象:代表的是事件的状态。比如获取当前的元素:e.Target。 二、事件冒泡 什么是事件冒泡呢?百度百科的解释如下: 当事件发生后,这个事件就要...
    99+
    2022-11-13
  • ASP.NETCore中的对象池介绍
    asp.net core中通过扩展库的方式提供给了一个标准的对象池ObjectPool,定义在Microsoft.Extensions.ObjectPool.dll 程序集中。它本身...
    99+
    2022-11-13
  • 关于java中类和对象的详细介绍
    类和对象对象我们知道,代表现实世界中可以明确标识的一个实体(万物皆对象),每个对象都有自己独特的标识、状态和行为。类是具有相似特征和行为的事物的统称。使用一个通用类来定义同一类型的对象。 类是一个模板 、蓝本或者说是合约 , 用来定义对象的...
    99+
    2015-06-07
    java入门 java 对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作