工程A(project-a)依赖工程B(project-b)的jar包(project-b.jar)
工程B中有这么两个类
Parent
----DataSource getDataSource(String param1,String param2)
Child extends Parent
----ChildDataSource getDataSource(String param1,String param2)
----ChildDataSource getDataSource()
且ChildDataSource extends DataSource
在工程A中想调用Child的getDataSource方法
Parent parent = new Child();
parent.getDataSource();
报错。于是将工程B中的Parent复制到工程A中(同样包名,同样类名)同时添加了一个getDataSource方法,如下所示:
DataSource getDataSource(){
return null;
}
现在虽然不报错了,但是却是执行的父类的getDataSource方法,似乎子类并没有覆盖它。
不知何故?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
貌似,你Java基础知识都不扎实~
报错1:
Parentparent=newChild();
parent.getDataSource();
肯定要报错呀,在父类中不存在 getDataSource()方法,请在父类中编写 getDataSource()方法。
报错2:
将工程B中的Parent复制到工程A中(同样包名,同样类名)??
工程A的Parent的类删了没?没删除的话类的全限定名就冲突了。
见我下面的回复没看明白,为啥要把parent移到A项目中去...直接在parent加方法不行么,要么给child再加一个接口呗,接口里有 getDataSource方法...有时候需要对第三方jar包临时做一些修改有一个便捷的方法如
Loggerlogger=LoggerFactory.getLogger(LoggerTest.class)
想在getLogger的时候打印一下输入参数class的类名。
这时可以将原slf4j-api-1.5.8.jar包中的org.slf4j.LoggerFactory复制到当前开发工程中,如下所示:
依赖的原始jar包:
当前开发工程:
这时在复制到本地的LoggerFactory中做如下修改:
publicstaticLoggergetLogger(Classclazz){System.out.println(clazz);//添加的内容returngetLogger(clazz.getName());}另外够任性的话你也可以在你的工程中创建一个java.lang.String的类如下所示: