先请看这:
interface a
{
public static final int i;
}
public class lesson22 implements a
{
public lesson22()
{
i = 3;
}
public static void main(String[]args)
{
lesson22 b = new lesson22();
System.out.println(b.i);
}
}请问:
问题1,这个程序为什么会出错呢 难道一定要这样声明才行吗 public static final int i = 3;接口不是只是用来对常量进行 定义吗 干嘛要先赋值呢 还有 一定要声明为静态的吗
问题2,如果实现两个接口 而两个接口都有相同的名字,返回类型和参数类别 该怎么实现呢 又该怎么调用呢
谢谢
interface a
{
public static final int i;
}
public class lesson22 implements a
{
public lesson22()
{
i = 3;
}
public static void main(String[]args)
{
lesson22 b = new lesson22();
System.out.println(b.i);
}
}请问:
问题1,这个程序为什么会出错呢 难道一定要这样声明才行吗 public static final int i = 3;接口不是只是用来对常量进行 定义吗 干嘛要先赋值呢 还有 一定要声明为静态的吗
问题2,如果实现两个接口 而两个接口都有相同的名字,返回类型和参数类别 该怎么实现呢 又该怎么调用呢
谢谢
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改
接口中可以定义多个方法,也可以定义常量,但是接口中绝不能有实例字段,而且接口也不会去实现方法。提供实例字段和方法实现,那是实现接口的类的任务。接口中的方法自动为public,字段也总是public static final的,因此接口a中字段i前面的public staic final也可以不写,i为final类型,也就是说它的值是不能改变的,因此必须有值才行。
谢谢你这个问题问的不好:接口是和类同级别的,他怎么会有返回类型和参数呢,只有方法才有这些,如果你想问的是方法,方法由方法名,方法参数类型,方法参数个数唯一确定。over。
这是经典的面试题,搞清楚了对你继续学Java有好处,呵呵!这里我就不回答了
不过根据规则:接口就是定义抽象的行为
那么如果继承的多个接口有相同的行为的话 应该实现一次就可以了
而且不可修改