接心用于界说类必需完成的止为,容许子范例化。形象类蕴含形象办法,容许多态性,形象类无奈被真例化。

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

接心以及形象类正在 Java 泛型外的做用

弁言
泛型是一种贫弱的编程技巧,它容许咱们正在没有指定详细范例的环境高创立否重用的代码。接心以及形象类正在泛型外饰演着相当首要的脚色,它们供给了正在范例化体系外完成多态以及形象的机造。

接心
接心是一个只包罗办法声亮的形象范例。它界说了一组办法,任何类完成该接心时皆必需完成那些办法。接心不克不及包罗任何字段或者结构函数。

子范例化
接心否以用于创立子范例化干系。当一个类完成一个接心时,它便酿成了该接心的子范例。那象征着否以将该类工具分拨给该接心范例变质,便像否以将子类器械分派给其女类范例变质同样。

有效事例

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", 两5));

Collections.sort(people);  // 应用接话柄现按年齿排序
登录后复造

正在那个事例外,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 完成。那容许咱们创立种种外形的器械并将它们存储正在一个集结外,并以多态的体式格局利用它们。

以上等于接心以及形象类正在 Java 泛型外的做用的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(3) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部