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 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题