相关疑难解决方法(0)

访问超类字段

例如,我有抽象类Shape,它获取形状的坐标:

public abstract class Shape{
    private int x;
    private int y;

    public Shape(int x, int y){
        this.x=x;
        this.y=y
    }

    public abstract void onDraw();

}
Run Code Online (Sandbox Code Playgroud)

现在我的课程Rect扩展自Shape:

public class Rect extends Shape{
    private int height;
    private int width;

    public Rect(int height, int width){
        this.height=height;
        this.width=width;
    }

    @Override
    public void onDraw(){
        //this method should get the width and height and the coordinates x and y, and will print the shape rect
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:如何Shape从内部获取抽象类的坐标x和y Rect …

java inheritance

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

Java中的访问修饰符


编辑修复标记为重复或更清楚为什么它似乎是重复.当时我不知道那个包和默认在哪里,因此这个帖子的原因相同.


现在我正在准备我的Java考试的考试问题,我有一个问题,要求我解释访问修饰符,并询问我有关修饰符的问题.

我可以找到有关私有,受保护,公共和默认的信息,但无法在Package上找到任何内容.

有人可以给我一个答案或链接我一篇关于它的文章吗?

java access-modifiers

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

访问修饰符,基本上是私有的,但可以由儿童访问

在Java中,有没有办法让一个访问修饰符基本上是私有的,除了这个方法可以被孩子访问?我正在开发一个程序,其中有一些方法是某个类的孩子需要的(并且希望避免重复),但我不想公开,因为我不希望这些幼稚类的对象是实例化以访问这些方法.

如果没有这样的事情,你们会建议在这个问题上实现最佳实践?

优选地,在同一包装中 - protected不满足此要求.

java object access-modifiers

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

继承和公共/私有方法

One.java

public class One {

    private void run() {
        System.out.println("one");
    }

    public void start() {
        this.run();
    }
}
Run Code Online (Sandbox Code Playgroud)

Two.java

public class Two extends One {
    public void run() {
        System.out.println("two");
    }
}
Run Code Online (Sandbox Code Playgroud)

Main.java

public class Main {
    public static void main(String[] args) {
        Two t = new Two();
        t.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:一

但是如果我在类中声明run方法public,One我会得到"两个"作为输出.

这是非常不可预测的,这是如何工作的?

java

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

为什么Java中允许使用受保护的静态?

我们都知道protected那里的成员继承(对于未来的程序员,而不是那个类的用户).另一方面,static绝对是用户,因为我们无法覆盖它,...或类似的东西.

那么为什么他们决定在旧的良好的编译时错误中允许这个呢?:

public class MathUtils {

    protected static max(int a, int b) {
         return a > b ? a : b;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你可以从你真实的实践中给我一个很好的例子,我会很感激,你是如何使用这种方法来允许访问另一个包的子类中的静态成员的?给我一个真实的例子.我不需要太多代码,只需几句解释.谢谢.

java oop

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

关于公共最终无效

我是java的新手.有一些新的弹出窗口叫做public final void.这是做什么的?public static void和public final void之间有什么区别?我非常感谢你们!

java

-4
推荐指数
1
解决办法
5801
查看次数

为什么Java中的私有成员可以从另一个类修改?

在下面的示例中,即使它是类的私有成员,x也可以按类更改.这是什么原因?BA

import java.util.Date;

class A {

    private Date x;

    public A(){
        super();
        x = new Date();
    }

    public Date getDate(){
        return x;
    }

    public void print(){
        System.out.println(this.x);
    }

}

class B {

    public static void main(String[] args){
    A a = new A();

    a.print();

    Date d = a.getDate();

    d.setMonth(12);

    System.out.println(d);

    a.print();

    }

}
Run Code Online (Sandbox Code Playgroud)

输出是:

Initial date generated by A
Date changed by B
Date changed by B (why does it change a private member here?)
Run Code Online (Sandbox Code Playgroud)

java oop

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

这和Java中的扩展

所以我对过去的测验有疑问.只要C和D在同一个包中,以下代码就会编译

class C {
   int i;
}

class D extends C {
   void m() {
       this.i = 3;
   }
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这是真是假?

java

-8
推荐指数
1
解决办法
163
查看次数

标签 统计

java ×8

access-modifiers ×2

oop ×2

inheritance ×1

object ×1