小编gab*_*k00的帖子

java中的多重继承和方法覆盖问题

我在另一篇文章中询问了一个类似的问题(如何从不需要强制转换的派生类实现一个方法),但这更具体一些.假设我有3个类:车辆,汽车,敞篷车.汽车延伸车辆,敞篷车延伸汽车.我想为每个类返回一个方法,该方法返回一个不需要在运行时强制转换的列表.经过一番思考后我认为这是不可能的,但我也想听听你的意见

public class Vehicle {
    public List<? extends Vehicle> getList() {
        return new ArrayList<Vehicle>();
    }
}

public class Car extends Vehicle {
    @Override
    public List<? extends Car> getList() {
        return new ArrayList<Car>();
    }
}

public class Convertible extends Car {
    @Override
    public List<? extends Convertible> getList() {
        return new ArrayList<Convertible>();
    }
}
Run Code Online (Sandbox Code Playgroud)

为了不使用强制转换,我必须在list(List<Convertible>)中返回特定类型的元素,但如果我想扩展Convertible类,我就不能再这样做了.

这种情况有什么办法吗?

java oop design-patterns

3
推荐指数
1
解决办法
130
查看次数

如何相对于图像定位 div?

我有一个图像,它可能会根据某些操作和我想要positionimg标签上的几个 div 改变其位置。

简化后的代码如下:

<div>
    <img src="someRandomImageUrl">
    <div>foobar</div>
</div>
Run Code Online (Sandbox Code Playgroud)

为了更好地理解,想象一下我有一个在中心周围有一个小方块的图像,并且无论我将图像放在哪里,我都希望将 foobar 消息放置在图像方块中。有任何想法吗?

css css-position

2
推荐指数
1
解决办法
1万
查看次数

Java返回语句奇怪的行为

我正在从leetcode解决Path Sum问题,我不理解return语句的行为.我有一个有2个节点的树.根节点的值为1,其左子节点的值为2.

如果2个节点的总和为3,我必须返回true,显然它是,但不管怎样,程序继续运行,即使它达到返回true.

public class Solution {
    public boolean hasPathSum(TreeNode root, int sum) {
        if (root != null) return hasPathSumRec(root, 0, sum);
        else return false;
    }

    public boolean hasPathSumRec(TreeNode node, int currentSum, int sum) {
        if (isLeaf(node) && sum == currentSum + node.val) {
            return true;
        } else {
            if (node.left != null) {
                hasPathSumRec(node.left, currentSum + node.val, sum);
            }
            if (node.right != null) {
                hasPathSumRec(node.right, currentSum + node.val, sum);
            }
        }
        return false;
    }

    public boolean isLeaf(TreeNode node) { …
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
2
解决办法
115
查看次数

标签 统计

java ×2

css ×1

css-position ×1

design-patterns ×1

oop ×1