【Java 抽象类&抽象方法】什么是抽象类&方法,如何定义,起什么作用?

简介: 【Java 抽象类&抽象方法】什么是抽象类&方法,如何定义,起什么作用?


Java中的抽象类和抽象方法是面向对象编程中的重要概念,它们用于定义一些具有共性的类和方法,但是又不能被直接实例化或调用

抽象类的概念 👅

抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类通常用于定义一些具有共性的类,但是又不能被直接实例化的情况。

抽象类的定义方式

public abstract class Animal {
  // ...........
}

抽象类的关键字是abstract,它告诉编译器这是一个抽象类。抽象类可以包含普通的成员变量和成员方法,也可以包含抽象方法。但是,抽象类中至少要包含一个抽象方法,否则就没有必要定义为抽象类.

抽象方法的概念 🐬

抽象方法是一种没有实现的方法,它只有方法签名,没有方法体。抽象方法通常用于定义一些具有共性的方法,但是具体实现方式可能因为子类的不同而不同

抽象方法的定义方式

public abstract void eat(); // 只有方法签名

抽象方法的关键字是abstract,它告诉编译器这是一个抽象方法。抽象方法没有方法体,因为它的具体实现方式是由子类来实现的。子类必须实现父类中的所有抽象方法,否则子类也必须定义为抽象类。

抽象类和抽象方法结合使用 🦄

你是内内个内内内个内个内内,阳光彩虹小白马 🦄 滴滴答滴滴答

抽象类和抽象方法通常用于定义一些具有共性的类和方法,但是具体实现方式可能因为子类的不同而不同。使用抽象类和抽象方法可以使代码更加灵活和可扩展

public abstract class Animal {
    private String name;
    public Animal(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public abstract void eat();
}
public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }
    @Override
    public void eat() {
        System.out.println(getName() + " is eating meat");
    }
}
public class Cat extends Animal {
    public Cat(String name) {
        super(name);
    }
    @Override
    public void eat() {
        System.out.println(getName() + " is eating fish");
    }
}
public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog("Tom");
        Animal cat = new Cat("Jerry");
        dog.eat(); // Tom is eating meat
        cat.eat(); // Jerry is eating fish
    }
}

在这个例子中,Animal是一个抽象类,它定义了一个抽象方法eat()DogCatAnimal的子类,它们必须实现eat()方法。在Main类中,我们创建了一个Dog对象和一个Cat对象,并调用它们的eat()方法。由于DogCat都实现了eat()方法,所以它们的行为是不同的.

目录
打赏
0
0
0
0
7
分享
相关文章
Java快速入门之数组、方法
### Java快速入门之数组与方法简介 #### 一、数组 数组是一种容器,用于存储同种数据类型的多个值。定义数组时需指定数据类型,如`int[]`只能存储整数。数组的初始化分为静态和动态两种: - **静态初始化**:直接指定元素,系统自动计算长度,如`int[] arr = {1, 2, 3};` - **动态初始化**:手动指定长度,系统给定默认值,如`int[] arr = new int[3];` 数组访问通过索引完成,索引从0开始,最大索引为`数组.length - 1`。遍历数组常用`for`循环。常见操作包括求和、找最值、统计特定条件元素等。
Java容器及其常用方法汇总
Java Collections框架提供了丰富的接口和实现类,用于管理和操作集合数据。
Java容器及其常用方法汇总
|
5天前
|
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
21 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
3天前
|
java.time常用方法汇总
`java.time` API 是从 Java 8 开始引入的时间日期处理库,旨在替代老旧的 `java.util.Date` 和 `Calendar`。它提供了更简洁、强大和灵活的方式处理日期、时间、时区及时间间隔,支持全球化和时间计算需求。API 包含获取当前时间、创建指定时间、解析和格式化字符串、进行加减运算、比较时间、获取年月日时分秒、计算时间间隔、时区转换以及判断闰年等功能。示例代码展示了如何使用这些功能,极大简化了开发中的时间处理任务。
Java快速入门之类、对象、方法
本文简要介绍了Java快速入门中的类、对象和方法。首先,解释了类和对象的概念,类是对象的抽象,对象是类的具体实例。接着,阐述了类的定义和组成,包括属性和行为,并展示了如何创建和使用对象。然后,讨论了成员变量与局部变量的区别,强调了封装的重要性,通过`private`关键字隐藏数据并提供`get/set`方法访问。最后,介绍了构造方法的定义和重载,以及标准类的制作规范,帮助初学者理解如何构建完整的Java类。
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
55 9
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
60 12
|
29天前
|
Java 方法注释:规范、实用和高质量的写法
本文深入探讨了如何编写高质量的 Java 方法注释
50 11
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等