java抽象类的作用!

 
 
  1. 在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;

  2. 通过从这个抽象体派生,也可扩展此模块的行为功能。为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。

  3. 抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

二、通过继承它实现多态,后期绑定,可以为将来要实现的东西做好接口,实现重用性,
例如:
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();
    }
}

//这个例子只是抽象类的最基本的设计模式,和接口差不多
 
子类继承抽象类后必须实现父类中的抽象方法。
如分页 分页父类BasicPage 父类中有个addParameter的方法。如果你建一个***Page的话它继承了BasicPage ,那么他必须加上addParameter的方法,否则报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值