首页 > 编程语言 >Java 中的抽象介绍

Java 中的抽象介绍

时间:2022-12-13 12:13:26浏览次数:76  
标签:Java color 介绍 Shape 抽象 抽象类 public

这篇文章主要介绍了Java 中的抽象,数据抽象是一种仅向用户显示基本细节的属性。不向用户显示琐碎或非必需的单元,下面文章Java抽象详细内容,需要的朋友可以参考一下

目录

前言:

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

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

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

在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 中的抽象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

标签:Java,color,介绍,Shape,抽象,抽象类,public
From: https://www.cnblogs.com/xiedy001/p/16978211.html

相关文章

  • idea 自带java 反编译工具问题
    就在最近升级到idea最新版本,发现以前java-decompiler命令行工具不能使用了,运行会有错误解决方法找到一个地版本的idea拷贝java-decompiler.jar直接替换,或者直接使用......
  • git(介绍下载安装)
    一、gti的介绍git主要功能有:代码回溯,版本切换,多人协作和远程备份,Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理......
  • Java程序员除了做增删改查还能干嘛?
      就以Java后端开发为例,说说不同级别程序员干的事情。1初级开发,大概是有3年Java开发经验。  22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进......
  • JAVA操作PDF实现简单盖章功能(未签字)
    默认再第一页签章:https://www.cnblogs.com/wolf-shuai/p/16977802.html摘要:jar包准备:bcpkix-jdk15on-1.70.jarbcprov-jdk15on-1.70.jariTextAsian.jaritextpdf-5.5.1......
  • 【java-01】springboot利用sharding jdbc实现读写分离
    写在开头打算把自己的java后端学习过程分享给大家,也方便之后自己回顾。从这里开始~目前在学习黑马的瑞吉外卖新手入门项目,这篇随笔记录的是项目优化之一读写分离先列出......
  • Java POI 常用操作
    POI常用操作importorg.apache.poi.ss.usermodel.*;importorg.apache.poi.ss.util.CellRangeAddress;importorg.apache.poi.xssf.usermodel.XSSFCell;importorg.ap......
  • Java数组(1)
        ......
  • java.lang.ClassNotFoundException: SpringSkinFactory抽象工厂模式范例报错
    示例代码:packageAbstractFactory.utils;importjavax.xml.parsers.*;importorg.w3c.dom.*;importjava.io.*;publicclassXMLUtil{//该方法用于从XML配......
  • 【JVM】Java 通过 javap 命令分析java汇编指令
      javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。当然......
  • 【JVM】VisualVM Java程序性能分析工具
     【JVM】VisualVMJava程序性能分析工具 介绍VisualVM是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来......