Cannot reduce the visibility of the inherited method from 编译错误

编译如下代码时,

<pre name="code" class="java">JDesktopPane DESKTOP_PANE = new JDesktopPane() {
				protected void paintComponent(Graphics g) {				
					g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
					//g.drawImage(image, 0, 0, 500, 400, null);
				}
			};

 

一切正常。编译如下代码时,

JDesktopPane DESKTOP_PANE = new JDesktopPane() {
				//protected void paintComponent(Graphics g) {	
<pre name="code" class="java">                                 protected  void paint(Graphics g) {			
					g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
					//g.drawImage(image, 0, 0, 500, 400, null);
				}
			};

 发生错误,提示如下信息: 

Multiple markers at this line
    - overrides javax.swing.JLayeredPane.paint
    - Cannot reduce the visibility of the inherited method from 

经查  JDesktopPane有paintComponet 和paint 方法。具体而言:

1. paintComponet继承自javax.swing.JComponent。原型: protected void paintComponent(Graphics g)

2. paint 继承自  javax.swing.JLayeredPane。 原型: public void paint(Graphics g)


发生错误的原因 是复写父类的方法,父类是 public 子类变为了protected,违反了 两同两小一大的 一大原则。故错误。修改为public 正确。


http://stackoverflow.com/questions/9035052/cannot-reduce-visibility-of-method-inherited-method-from-parent

http://stackoverflow.com/questions/6851612/java-access-modifiers-and-overriding-methods


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值