马士兵java架构师

您现在的位置是:java学习笔记 >

java学习笔记

Java抽象方法和普通方法的区别(区别于关系)

2024-03-05 03:28:09java学习笔记 本文浏览次数:1 百度已收录

本 文 目 录

Java抽象方法和普通方法的区别

Java抽象方法与普通方法的区别

一、具体作用与主要运用场景

在Java编程语言中,普通方法是具有实际实现体的方法,用于完成特定的功能。每个类都可以定义普通方法,用于封装具体的业务逻辑,实现类的职责。

抽象方法则是没有具体实现的方法,仅声明了方法的签名(包括返回类型、方法名和参数列表),存在于抽象类或接口中。抽象方法主要用于定义一组需要由子类实现的方法规范,强制子类提供具体实现,以实现多态性和扩展性。

二、步骤解析与代码实现

1. 普通方法的定义与实现

public class RegularClass {
    // 定义并实现一个普通方法
    public String regularMethod(int a, int b) {
        return "The sum is: " + (a + b);
    }
}

上述代码中,RegularClass类定义了一个名为regularMethod的普通方法,该方法接受两个整数作为参数,并返回它们之和的字符串表示形式。普通方法的特点在于它提供了完整的实现细节。

2. 抽象方法的定义与使用

abstract class AbstractClass {
    // 定义一个抽象方法
    public abstract void abstractMethod();
}

// 子类实现抽象方法
class ConcreteClass extends AbstractClass {
    @Override
    public void abstractMethod() {
        System.out.println("This is an implementation of the abstract method.");
    }
}

在这个例子中,我们首先定义了一个名为AbstractClass的抽象类,其中包含一个未实现的抽象方法abstractMethod。然后创建一个继承自AbstractClassConcreteClass,并在其中实现了父类的抽象方法。抽象方法的核心特征在于它必须在子类中被覆盖和实现。

三、总结与注意事项

  • 抽象方法不能包含方法体,只能在抽象类或接口中声明,其目的是为了定义一种通用的行为模式,具体实现交由子类去完成。
  • 普通方法具备完整的方法实现,可以直接调用并执行相应的功能。
  • 如果一个类包含了抽象方法,那么这个类必须声明为抽象类,且不能实例化。而抽象类可以包含抽象方法和非抽象方法(即普通方法)。
  • 在设计时,如果一个类的设计意图主要是作为其他类的基类,且需要规定一组基本操作但不必给出具体实现,这时通常会采用抽象方法。

四、完整代码示例

// 定义普通方法的类
public class RegularClass {
    public String regularMethod(int a, int b) {
        return "The sum is: " + (a + b);
    }

    public static void main(String[] args) {
        RegularClass reg = new RegularClass();
        System.out.println(reg.regularMethod(3, 5));
    }
}

// 抽象方法的定义与实现
abstract class AbstractClass {
    public abstract void abstractMethod();
}

class ConcreteClass extends AbstractClass {
    @Override
    public void abstractMethod() {
        System.out.println("This is an implementation of the abstract method.");
    }

    public static void main(String[] args) {
        ConcreteClass con = new ConcreteClass();
        con.abstractMethod();
    }
}