인터페이스는 클래스가 구현해야 하는 동작을 정의하는 데 사용되며 하위 유형 지정이 가능합니다. 추상 클래스에는 추상 메서드가 포함되어 있어 다형성을 허용합니다.
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()
方法,该方法由其子类 Rectangle
和 Circle
Shape
는 getArea()
메서드를 정의하는 추상 클래스이며, 이 메서드는 하위 클래스Rectangle로 정의됩니다. 및 원
이 구현되었습니다. 이를 통해 다양한 모양의 객체를 생성하고 컬렉션에 저장하고 다형성 방식으로 사용할 수 있습니다. 🎜위 내용은 Java 제네릭에서 인터페이스와 추상 클래스의 역할의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!