【JAVA】关于抽象类的概念

这篇具有很好参考价值的文章主要介绍了【JAVA】关于抽象类的概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【JAVA】关于抽象类的概念,初识JAVA,java,开发语言


个人主页:【😊个人主页】
系列专栏:【❤️初识JAVA】


前言

在Java中,抽象类是一种特殊的类,它无法被实例化。它只能被用作其他类的基类,以便子类可以继承它的属性和方法。今天我们就来谈谈JAVA中的抽象类。
【JAVA】关于抽象类的概念,初识JAVA,java,开发语言

抽象类

抽象类是一种特殊的类,它不能被实例化,而只能被继承。抽象类的主要作用是为其子类提供公共的抽象方法或属性的定义,让子类去实现如果一个类中有至少一个抽象方法,那么这个类必须被声明为抽象类

抽象方法是指只有方法头,没有方法体的方法。子类必须实现父类中的所有抽象方法,否则子类也必须被声明为抽象类。抽象类和抽象方法的关键字分别为abstract。

抽象类的特点

  1. 抽象类不能被实例化。
  2. 抽象类可以包含普通方法和属性。
  3. 抽象类中可以定义抽象方法。
  4. 继承抽象类的子类必须实现父类中的所有抽象方法,否则子类也必须被声明为抽象类。
  5. 抽象类可以允许不实现抽象方法,但这种情况下,子类必须再次声明抽象方法并实现它。

继承抽象类

Java继承抽象类是指一个子类通过继承一个抽象类来实现抽象类中定义的抽象方法,并可以重写非抽象方法。

实现方式

  1. 定义一个抽象类,使用abstract关键字,抽象类中可以包含抽象方法和非抽象方法。
public abstract class Animal {
    public abstract void run();
    public void eat() {
        System.out.println("eating...");
    }
}
  1. 定义一个子类,使用extends关键字继承抽象类。
public class Dog extends Animal {
    @Override
    public void run() {
        System.out.println("Dog is running...");
    }
}

注意:子类必须实现抽象类中定义的所有抽象方法。

  1. 创建子类对象,并调用抽象类中的方法。
public class Main {
    public static void main(String[] args) {
        Animal animal = new Dog();
        animal.run(); // 输出:Dog is running...
        animal.eat(); // 输出:eating...
    }
}

注意:抽象类不能被实例化,但可以通过子类的对象来实现多态。

抽象方法

Java的抽象方法是一种没有实现代码的方法,需要由子类来实现具体的逻辑。在Java中,抽象方法必须被定义在抽象类中,抽象类不能被实例化,只能被继承。抽象类中可以包含非抽象方法,但至少要包含一个抽象方法。

声明抽象方法会造成以下两个结果:

  • 如果一个类包含抽象方法,那么该类必须是抽象类。
  • 任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
    继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。
    如果Salary类继承了Employee类,那么它必须实现computePay()方法:

实例

public abstract class Shape {

    protected int x, y; // 坐标

    public Shape(int x, int y) {
        this.x = x;
        this.y = y;
    }

    // 抽象方法,必须在子类中实现
    public abstract void draw();

    // 普通方法
    public void move(int deltaX, int deltaY) {
        x += deltaX;
        y += deltaY;
    }
}

public class Circle extends Shape {

    private int radius; // 半径

    public Circle(int x, int y, int radius) {
        super(x, y);
        this.radius = radius;
    }

    @Override
    public void draw() {
        System.out.println("Drawing Circle");
    }
}

public class Square extends Shape {

    private int side; // 边长

    public Square(int x, int y, int side) {
        super(x, y);
        this.side = side;
    }

    @Override
    public void draw() {
        System.out.println("Drawing Square");
    }
}

在这个例子中,我们定义了抽象类Shape和其子类Circle和Square。Shape类包含了一个抽象方法draw()和一个普通方法move()。Circle和Square子类都继承了Shape类,并实现了draw()方法。由于draw()方法是抽象的,因此它必须被子类实现。在这个例子中,Circle和Square子类分别实现了自己的draw()方法,分别输出Drawing Circle和Drawing Square。文章来源地址https://www.toymoban.com/news/detail-718583.html

到了这里,关于【JAVA】关于抽象类的概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【NCRE 二级Java语言程序设计01】全国计算机等级考试初识

    📜 本专栏主要是分享自己备考全国计算机二级Java语言程序设计所学心得体会、所搜集的资料信息。虽然有 Java 语言相关基础,但是 Java 桌面编程、Applet 小程序编程根本没学过,因为咱不是搞这个的呀,学了它们也找不到这方面工作呀。但是对于考二级 Java 的小伙伴来说是必

    2024年02月10日
    浏览(31)
  • 【JAVA语言-第12话】API中的工具类 之 Date,DateFormat,SimpleDateFormat,Calendar类的详细解析

    目录 日期和时间 1.1 Date类 1.1.1 概述 1.1.2 常用方法  1.1.3 案例 1.2 DateFormat类  1.2.1 概述 1.2.2 常用方法 1.3 SimpleDateFormat类 1.3.1 概述 1.3.2 构造方法 1.3.3 模式字符  1.3.4 日期转字符串 1.3.5 字符串转日期 1.4 Calendar类 1.4.1 概述 1.4.2 静态方法 1.4.3 常用成员方法 1.4.4 成员方法中参数

    2024年02月02日
    浏览(29)
  • 学习Java Web开发的关键技术和概念

    学习Java Web开发需要掌握多个关键技术和概念,包括Java基础知识、Servlet、JSP、JDBC、MVC架构和前端技术等。本文将详细介绍这些技术和概念,并提供实例和示例代码来帮助读者更好地理解和应用这些技术。 Java基础知识是学习Java Web开发的基石。我们需要掌握Java语法、面向对象

    2024年02月07日
    浏览(33)
  • JAVA开发(神乎其神的区块链概念和技术)

            由于我最近需要做一个关于区块链的项目,所以想写篇博文记录一下自己的一些疑惑。区块链技术最火爆的时间应该是2016年和2017年。它产生的背景是B特币兴起,一时间说虚拟货币将取代所有实物货币炒的沸沸扬扬。它的主要思想思想是去中心化。网络上给了很多

    2023年04月20日
    浏览(49)
  • 接口和抽象类的区别

    (1)抽象类存在普通成员方法,而接口中只能存在public static abstract方法 (2)抽象类中的变量可以是各种类型的,而接口中的变量只能是public static final类型的。 (3)抽象类只能继承一个,而接口可以被多次实现。 (1)接口的设计的目的,是对类的行为进行约束(更准确的

    2024年02月15日
    浏览(28)
  • 接口和抽象类的区别是什么?

    一. 介绍 1.  接口  Interface 接口可以称之为一种规范,在Java中被用来定义一组方法,而不提供具体的实现细节,它规定了一个类应该要实现哪些方法;其他类可以通过实现接口来达到代码重用和多态性的目的,帮助我们构建可扩展、灵活和可复用的代码。 接口使用步骤:

    2024年02月13日
    浏览(29)
  • java 抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern): 是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。

    2024年04月13日
    浏览(22)
  • Java的抽象类 & 接口

    如果自下而上在类的继承层次结构中上移,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,人们只将它作为派生其他类的基类,而不作为想使用的特定的实例类。例如,考虑一下对 Employee 类层次的扩展。一名雇员是一个人,一名学生也是一

    2024年02月03日
    浏览(23)
  • Java 抽象类详细讲解

    目录 Java抽象类概念 Java抽象类示例 继承Animal类的子类的示例 Java抽象类详细使用方法 1、定义抽象类 2、继承抽象类 3、实现抽象方法 4、完整示例代码 Java中抽象类是指用abstract修饰的类,它不能被实例化,只能被继承。抽象类通常用于定义一些公共的方法和属性,但是

    2023年04月18日
    浏览(28)
  • java 抽象类 详解

    目录 一、抽象类概述: 二、抽象方法 :          1.概述 :          2.应用 :          3.特点 :  三、抽象类特点 :          1.关于abstract :          2.抽象类不能被实例化,只能创建其子类对象 :          3.抽象类子类的两个选择 :  四、抽象类的成员 :       

    2024年02月06日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包