欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

抽象类 抽象类

程序员文章站 2022-07-12 15:43:41
...
在面向对象方法中,抽象类主要用来进行类型隐藏。
构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。
这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。
模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;
通过从这个抽象体派生,也可扩展此模块的行为功能。
为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
通过继承它实现多态,后期绑定,可以为将来要实现的东西做好接口,实现重用性,
例如:
abstract class A {
    public abstract void doSomething();
}

class B extends A {
    public void doSomething() {
        System.out.println("do B");
    }
}

class C extends A {
    public void doSomething() {
        System.out.println("do C");
    }
}

public class Test {
    public static void main(Stringp[] args) {
        A a1 = new B();
        A a2 = new C();
        B b = new B();
        C c = new C();
        doSomething(a1); //这里
        doSomething(a2); //这里
         doSomething(b); //这里,如果下面的方法不是用抽象类作参数,比如用C c做参数,这里会有什么问题?
         doSomething(c); //这里
    }

    public static void doSomething(A a) {//这里,用抽象类,为什么,自己思考
        a.doSomething();
    }
}

这个例子只是抽象类的最基本的设计模式,和接口差不多
相关标签: 抽象类