【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()方法,所以它们的行为是不同的.

相关文章
|
5天前
|
缓存 算法 Java
Java面试题:深入探究Java内存模型与垃圾回收机制,Java中的引用类型在内存管理和垃圾回收中的作用,Java中的finalize方法及其在垃圾回收中的作用,哪种策略能够提高垃圾回收的效率
Java面试题:深入探究Java内存模型与垃圾回收机制,Java中的引用类型在内存管理和垃圾回收中的作用,Java中的finalize方法及其在垃圾回收中的作用,哪种策略能够提高垃圾回收的效率
12 1
|
5天前
|
存储 算法 安全
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
11 0
|
4天前
|
存储 运维 Java
Java面试题:JVM的内存结构有哪些主要部分?请简述每个部分的作用
Java面试题:JVM的内存结构有哪些主要部分?请简述每个部分的作用
26 9
|
4天前
|
缓存 安全 Java
Java面试题:解释volatile关键字的作用,以及它如何保证内存的可见性
Java面试题:解释volatile关键字的作用,以及它如何保证内存的可见性
18 4
|
4天前
|
缓存 Prometheus 监控
Java面试题:如何监控和优化JVM的内存使用?详细讲解内存调优的几种方法
Java面试题:如何监控和优化JVM的内存使用?详细讲解内存调优的几种方法
25 3
|
5天前
|
设计模式 安全 Java
Java面试题:设计模式如单例模式、工厂模式、观察者模式等在多线程环境下线程安全问题,Java内存模型定义了线程如何与内存交互,包括原子性、可见性、有序性,并发框架提供了更高层次的并发任务处理能力
Java面试题:设计模式如单例模式、工厂模式、观察者模式等在多线程环境下线程安全问题,Java内存模型定义了线程如何与内存交互,包括原子性、可见性、有序性,并发框架提供了更高层次的并发任务处理能力
17 1
|
4天前
|
缓存 监控 算法
Java面试题:讨论JVM性能调优的常见方法和技巧。
Java面试题:讨论JVM性能调优的常见方法和技巧。
10 1
|
4天前
|
Java API
Java面试题:说明Lambda表达式在Java中的应用,以及函数式接口的概念和作用。
Java面试题:说明Lambda表达式在Java中的应用,以及函数式接口的概念和作用。
11 0
|
4天前
|
存储 设计模式 监控
Java面试题:简述JVM的内存结构,包括堆、栈、方法区等。栈内存优化的方法有 哪些?
Java面试题:简述JVM的内存结构,包括堆、栈、方法区等。栈内存优化的方法有 哪些?
15 0
|
4天前
|
druid Java 数据库连接
Java面试题:解释数据库连接池的概念及其作用,讨论常见的连接池实现。
Java面试题:解释数据库连接池的概念及其作用,讨论常见的连接池实现。
12 0