抽象类中公有方法子类不可见!!!!

发布于 2021-11-10 19:03:55 字数 205 浏览 873 评论 6

如题!有遇到过吗?

父类是实现Filter的一个抽象类,实现了doFilter方法

抽象类中有一些已实现的方法

子类继承抽象类,子类可以实现父类中的抽象方法

同时可以重写父类的doFilter方法

但子类中确访问不到父类中的其它public的方法。。。。

为什么????

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

悲喜皆因你 2021-11-14 08:10:39

有新进展了:

子类可以访问父类中private的成员属性!

然后将JAR包中那抽象类在自己项目中原样重写后(包路径,对象内容完全一样),就可以正常访问public方法,调用private属性编译错误了。。。

这是啥么子问题呀!

悲喜皆因你 2021-11-14 02:52:52

但isB方法的声明是public的呀!

public声明的方法有管在哪里都应该是可见的吧!

(我有JAR包的源码)

多彩岁月 2021-11-13 16:10:12

引用来自#4楼“zakowey”的帖子

哦!

说明一下:这个BaseFilter抽象类是在一个Jar包中的,就是说我的MyFilter去继承别人提供JAR包中的抽象类。

好听的两个字的网名 2021-11-13 13:08:30

哦!

说明一下:这个BaseFilter抽象类是在一个Jar包中的,就是说我的MyFilter去继承别人提供JAR包中的抽象类。

感情旳空白 2021-11-11 22:00:17

源代码在公司,其中代码的结构是:

import *;
abstract public class BaseFilter implement Filter
{
	abstract boolean isA(ServletRequest request);
	public void doFilter(ServletRequest request,ServletResponse response,FilterConfig filterConfig){
		...
	}
	public boolean isB(ServletRequest request){
		return true;
	}
}

import *;
public class MyFilter extends BaseFilter
{
	public boolean isA(ServletRequest request){
		return false;
	}

	public void doFilter(ServletRequest request,ServletResponse response,FilterConfig filterConfig){
		super.doFilter(request,response,filterConfig);

		boolean b = isB(request); // 这一句在编译时就会报错,提示Not visible
	}
}

用记事本写的,呵呵!不知道关键字有没有拼错。。。

鹤舞 2021-11-11 19:24:14

有没有源码发来看看,这种情况不应该会发生

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文