java接口的一些小知识

来源:互联网 发布:淘宝怎么看卖家信用 编辑:程序博客网 时间:2024/06/06 03:19

接口:接口的修饰符只能是public或者默认不写,接口中只有抽象方法,没有具体的实现public void method();接口中的成员只能是final(即常量!),而且只能是public或者没有修饰符的接口中的方法,如果没有修饰符修饰,默认是public方法,而且也只能是public方法,这个要特别注意的。不能用 new +接口名

接口是一个特殊的抽象类,它没有变量和方法实现

[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}。

extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。


1.问题:能不能用接口来定义一个对象?

答案:是可以的见例子

public interface Wu {public void run();}//实现了Wu接口public class ArrayWu implements Wu {public void run() {System.out.println("ArrayWu实现的run方法!");}}//测试public class test11 {public static void main(String[] args) {Wu wuexmp = new ArrayWu();wuexmp.run();}}

这里定义的接口是自定义的Wu接口,然后
<span style="font-size:14px;">Wu wuexmp = new ArrayWu();</span>
<span style="font-size:14px;">是将类创建的对象给了接口这个是允许的,对象的引用可以是以接口,但是对象不能是一个接口类型,必须是接口类型的实现类。</span>
<span style="font-size:14px;">一个类里面的定义对象可以是接口类型,但不能是接口的实例。因为接口不能实例化,它是一个残类。</span>


2.问题java接口中可以定义类吗?

答案:

可以定义,也不仅限于抽象类。只是接口本身不能被实例化,接口内部的类是可以实例化的。调用接口的内部类有两种方法:1.接口名.类名2.创建实现类implements接口,再直接实例化内部类

public interface Test{    class A{public int a=1;}}--public class Program {    public static void main(String[] args) {Test.A a = new Test.A();System.out.println(a.a);new B().method();}}class B implements Test{void method(){System.out.println(new A().a);}}
3.类里面定义接口,内部接口。一般没方法,大多数情况都是只定义一些常量。缺省是static的,外部类可以调用该接口。(极少参考Thinking in Java

但是呢,就是普通的类里面的内部类或者抽象类都不怎么会用的更别说接口的了,所以这个不必掌握。



0 0
原创粉丝点击