摘要方法没有身体?

Max*_*x_S 3 java abstract abstract-methods

我是Java新手(现在读书4个月了).所以我的问题可能看起来太简单了.我的理解是,抽象方法没有正文,也无法提供实现

那么这是如何工作的呢?

public abstract void fillRect (int x, int y, with, height);
Run Code Online (Sandbox Code Playgroud)

我没有清楚地指出这个问题.我们有抽象的方法.如果我不提供正文,只是参数,为什么它会绘制一个矩形.

例如

public void paint (Graphics g) {

g.fillRect (5, 5, 30, 30);

}
Run Code Online (Sandbox Code Playgroud)

Sur*_*tta 8

还阅读文档

当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现.但是,如果没有,则子类也必须声明为abstract.


Muk*_*ngh 3

有两件事你需要知道

-声明:方法的原型或结构。例如:

    public int add(int a, int b);
Run Code Online (Sandbox Code Playgroud)

-definition:方法的实现

    public int add(int a, int b) {
        this.a = a;
        this.b = b;
        return a + b;
    }
Run Code Online (Sandbox Code Playgroud)

现在,抽象方法可以有一个声明,即结构或原型。但它不能有一个定义。定义应该在扩展包含抽象方法的类的类中完成:

    class A {
        public abstract int add(int a,int b); //just declaration- no body
    }
    class B extends A {
        /*must override add() method because it is abstract in class A i.e class B must have a body or definition of add()*/ 
        int a, b;
        public int add(int a,int b) {
            this.a = a;
            this.b = b;
            return a + b;
        }
    }
Run Code Online (Sandbox Code Playgroud)