Java中如何熟练运用抽象类和接口?

请教一下:
框架或者公司自己封装的类库,都有庞大的继承实现体系,
看起来感觉都挺费劲的,一层一层往里找.
一般自己写代码,感觉都用不着抽象类和接口a,
感觉直接写个类,写功能就好了.

        感觉摸不着抽象类或者接口的使用场景.

        请大佬赐教.

接口和抽象类是为了以后的扩展,如果确定这一个功能不会扩展就不需要写接口的。

基本上设计模式都有用到抽象类和接口的。比如有一个需求,商品下架后去做通知用户、删除商品之类的操作,那通知用户、删除商品两个类实现一个接口,然后注册到商品下架类这里(观察者设计模式),等商品下架后去依次执行注册的方法。这样可以实现代码的解耦,职责单一,又能支持扩展。