Kininaru
Kininaru
Java抽象类

作用

常用于 Java 多态的实现。

定义

abstract关键字来标记一个抽象类:

abstract class Abstract {

}

对于成员函数,可以用abstract关键字来将其定义为抽象函数:

abstract class Abstract {

    public abstract void abstractMethod();
}

可以为抽象类添加普通成员函数:

abstract class Abstract {

    public void normalMethod() {
        println("Abstract.normalFunction");
    }

    public abstract void abstractMethod();
}
  • 注意:JDK不会允许用户创建一个抽象类的对象,所以在创建对象前,必须继承抽象类并重载其所有抽象方法!

使用

可以用匿名类来直接使用一个抽象类。但是需要在匿名类中重载所有的抽象函数:

Abstract a = new Abstract() {
            @Override
            public void abstractMethod() {
                println("Abstract.abstractMethod()");
            }
        };

也可以先继承这个抽象类,然后重写其所有抽象函数:

class SonOfAbstract extends Abstract {

    @Override
    public void abstractMethod() {
        println("SonOfAbstract.abstractMethod()");
    }
}
// 至此,可以像使用一个正常类一样去使用SonOfAbstract
  • 注意:如果没有在继承时重载所有抽象函数,那么继承所得的类依然是抽象类!

发表评论

textsms
account_circle
email

Kininaru

Java抽象类
作用 常用于 Java 多态的实现。 定义 用abstract关键字来标记一个抽象类: abstract class Abstract { } 对于成员函数,可以用abstract关键字来将其定义为抽象函数: …
扫描二维码继续阅读
2020-11-08