java接口中有属性吗_java – 接口中的属性/成员变量?

接口的要点是指定公共API.接口没有状态.您创建的任何变量都是常量(因此请注意在接口中创建可变对象).

基本上,接口说这里是实现它的类必须支持的所有方法.如果Java的创建者不允许在接口中使用常量,那么可能会更好,但是现在为时已晚(并且在某些情况下常量在接口中是合理的).

因为您只是指定必须实现哪些方法,所以不知道状态(没有实例变量).如果要要求每个类都有一个特定的变量,则需要使用抽象类.

最后,一般来说,您应该不使用公共变量,因此将变量放入接口的想法一开始就是一个坏主意.

简短的回答 – 你不能做你想要的,因为它在Java中是“错误的”.

编辑:

class Tile

implements Rectangle

{

private int height;

private int width;

@Override

public int getHeight() {

return height;

}

@Override

public int getWidth() {

return width;

}

@Override

public void setHeight(int h) {

height = h;

}

@Override

public void setWidth(int w) {

width = w;

}

}

替代版本将是:

abstract class AbstractRectangle

implements Rectangle

{

private int height;

private int width;

@Override

public int getHeight() {

return height;

}

@Override

public int getWidth() {

return width;

}

@Override

public void setHeight(int h) {

height = h;

}

@Override

public void setWidth(int w) {

width = w;

}

}

class Tile

extends AbstractRectangle

{

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值