小编McT*_*cTi的帖子

使用重载方法的动态调度(运行时多态),而不使用instanceof

我要救的对象Arc,并Line在一个ArrayList中,然后利用这两者的交集.问题是如何演员ij原作.我知道这instanceof有效,但这将是最脏的方法.

public class Intersection {
    public static boolean intersect(ArrayList<Curve> list1, ArrayList<Curve> list2) {
        for (Curve i : list1) {
            for (Curve j : list2) {
                if (i.intersection(j).length > 0) 
                    return true;
            }
        }
        return false;
    }
}

public abstract class Curve {
    public Point[] intersection(Curve c) {
        return new Point[] {};
    }
}

public class Line extends Curve {
    public Point[] intersection(Line l) {
        // returns intersection Point of this …
Run Code Online (Sandbox Code Playgroud)

java oop polymorphism design-patterns multiple-dispatch

5
推荐指数
1
解决办法
551
查看次数