sanshui_yangfei 2019-12-26 21:37 采纳率: 20%
浏览 376
已采纳

一个DaoImpl类,既想通过实现IDao接口达到通过接口调用的目的,又想通过继承抽象类,使用父类的通用方法。应该怎么做?

1、IDao.java

package cn.test;

public interface IDao {
    public void Query();
}

2、GeneralDao.java

package cn.test;

public abstract class GeneralDao {
    public void generalDaoMethod() {
        System.out.println("调用generalDaoMethod方法");
    }
}

3、DaoImpl.java

package cn.test;

public class DaoImpl extends GeneralDao implements IDao {

    @Override
    public void Query() {
        System.out.println("调用接口的个性化查询方法");
    }

}

4、我能想到的就是强转,但觉得不好。
App.java

package cn.test;

public class App {

    public static void main(String[] args) {
        IDao dao=new DaoImpl();
        dao.Query();
        ((GeneralDao)dao).generalDaoMethod();
    }

}

5、输出

调用接口的个性化查询方法
调用generalDaoMethod方法

有没有其他更好的方法可以实现既可通过接口调用,又可以使用父类的方法?

  • 写回答

2条回答 默认 最新

  • VICTOR_fusheng 2019-12-27 14:39
    关注

    做不到,你用IDao dao = new DaoImpl();这种方式,那么dao就只能执行IDao里有的方法,不能执行generalDaoMethod(),想这种使用就不要用父类,直接DaoImpl dao = new DaomImpl();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 vue3加ant-design-vue无法渲染出页面
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序