1 java接口中,不是放些方法吗?怎么还可放int b=10;
2 接口和抽象类有什么区别呢,使用时如何选择用接口还是用抽象类呢
thanks

解决方案 »

  1.   

    接口中的变量声明都是常量,
    int b=10;
    ==
    public static final int b = 10;
    在接口里面定义的方法必须全部是抽象方法,属性全部为常量
    而抽象类里面不知能定义抽象方法也可以定义实例方法。
      

  2.   

    接口中的变量声明都是常量,
    int b=10;
    ==
    public static final int b = 10;
    在接口里面定义的方法必须全部是抽象方法,属性全部为常量
    而抽象类里面可以定义抽象方法也可以定义实例方法,两种可以同时存在。抽象类,是指 is a ,是一种 , 接口 has a 如果只是定义一组操作接口 ,就是用接口,如果是继承关系的就用抽象类
    比如 动物 狗 猫 都有呼吸的功能  动物 就定义成抽象类了 ,因为 狗 猫 is a 动物;比如 狗 会叫 ,喇叭也会叫 就可以把叫定义为一种接口 ,他们都实现这个接口 ,因为狗 喇叭 has a 叫这个功能 ;
      

  3.   

    抽象类中定义的变量和 普通类中一样随便
    private
    protected 
    public看看做什么用,如果是类属性 就定义成private  然后通过 getter/setter方法获取;
    如果是一些常量的话就定义为 public static final 类型 名字 = 值 ;