>Java >java지도 시간 >Java 제네릭에서 인터페이스와 추상 클래스의 역할

Java 제네릭에서 인터페이스와 추상 클래스의 역할

WBOY
WBOY원래의
2024-05-02 15:00:02467검색

인터페이스는 클래스가 구현해야 하는 동작을 정의하는 데 사용되며 하위 유형 지정이 가능합니다. 추상 클래스에는 추상 메서드가 포함되어 있어 다형성을 허용합니다.

接口和抽象类在 Java 泛型中的作用

Java Generics에서 인터페이스와 추상 클래스의 역할

소개
Generics는 구체적인 유형을 지정하지 않고도 재사용 가능한 코드를 만들 수 있는 강력한 프로그래밍 기술입니다. 인터페이스와 추상 클래스는 제네릭에서 중요한 역할을 하며 형식화된 시스템에서 다형성과 추상화를 달성하기 위한 메커니즘을 제공합니다.

Interface
인터페이스는 메서드 선언만 포함하는 추상 유형입니다. 인터페이스를 구현하는 모든 클래스에서 구현해야 하는 메서드 집합을 정의합니다. 인터페이스에는 필드나 생성자가 포함될 수 없습니다.

Subtyping
인터페이스를 사용하여 하위 입력 관계를 설정할 수 있습니다. 클래스가 인터페이스를 구현하면 해당 인터페이스의 하위 유형이 됩니다. 이는 하위 클래스 객체가 상위 클래스 유형 변수에 할당될 수 있는 것처럼 해당 클래스의 객체가 해당 인터페이스 유형 변수에 할당될 수 있음을 의미합니다.

실용적인 예

public interface Comparable<T> {
    int compareTo(T other);
}

public class Person implements Comparable<Person> {

    private String name;
    private int age;

    @Override
    public int compareTo(Person other) {
        return this.age - other.age;
    }
}

// 使用示例
List<Person> people = new ArrayList<>();
people.add(new Person("John", 30));
people.add(new Person("Mary", 25));

Collections.sort(people);  // 使用接口实现按年龄排序

이 예에서 Person 클래스는 Comparable 인터페이스를 구현하여 연령별로 비교할 수 있습니다. 이는 Collections.sort() 메서드를 사용하여 Person 개체 컬렉션을 정렬할 수 있음을 의미합니다. Person 类实现了 Comparable 接口,使其可以按年龄进行比较。这意味着我们可以使用 Collections.sort() 方法对 Person 对象集合进行排序。

抽象类
抽象类是一种不能被实例化的类。它可以包含抽象方法(没有实现的方法),以及普通方法和字段。

多态性
抽象类允许以多态的方式使用对象。当创建一个引用抽象类类型的变量时,它可以引用该类或其任何子类的对象。

实用示例

public abstract class Shape {

    private String color;

    public abstract double getArea();
}

public class Rectangle extends Shape {

    private double width;
    private double height;

    @Override
    public double getArea() {
        return width * height;
    }
}

public class Circle extends Shape {

    private double radius;

    @Override
    public double getArea() {
        return Math.PI * radius * radius;
    }
}

// 使用示例
List<Shape> shapes = new ArrayList<>();
shapes.add(new Rectangle(5, 10));
shapes.add(new Circle(5));

for (Shape shape : shapes) {
    System.out.println(shape.getArea());
}

在这个示例中,Shape 是一个抽象类,它定义了一个 getArea() 方法,该方法由其子类 RectangleCircle

🎜추상 클래스🎜🎜추상 클래스는 인스턴스화할 수 없는 클래스입니다. 여기에는 일반 메소드 및 필드뿐만 아니라 추상 메소드(구현이 없는 메소드)가 포함될 수 있습니다. 🎜🎜🎜다형성🎜🎜추상 클래스를 사용하면 객체를 다형성 방식으로 사용할 수 있습니다. 추상 클래스 유형을 참조하는 변수를 생성하면 해당 클래스 또는 해당 하위 클래스의 개체를 참조할 수 있습니다. 🎜🎜🎜실용 예🎜🎜rrreee🎜이 예에서 ShapegetArea() 메서드를 정의하는 추상 클래스이며, 이 메서드는 하위 클래스Rectangle로 정의됩니다. 및 이 구현되었습니다. 이를 통해 다양한 모양의 객체를 생성하고 컬렉션에 저장하고 다형성 방식으로 사용할 수 있습니다. 🎜

위 내용은 Java 제네릭에서 인터페이스와 추상 클래스의 역할의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.