关闭

java基础知识--接口语法细节

267人阅读 评论(0) 收藏 举报

0、接口必须是用public  abstract修饰,但是可以省略,省略也是public abstract的。

1、在定义类的时候,是可以有接口的,比如:Swimmer swimmer1 = new Shark();式中的Swimmer是一个接口,但是new后是不准有接口的,因为接口中只能有方法的描述,不能存在方法的定义(实现),在这个定义式中,用Swimmer接口的目的就是后续的操作能够更统一一些。

2、接口中的方法一定是公开且抽象(public abstract),且不能有实现,没有别的写法,只能是public abstract void methodName();为了方便,也可以省略public abstract:   void methodName(),编译程序会帮我们自动加上的。但是类中的abstract 方法不一定都是public的。并且类中的某个方法没有实现的话(没有双大括号)就无法编译,必须加上abstract修饰,这还不算完,这样的类也必须用abstract修饰。但是在子类中描述父类的abstract方法的时候可以没有@override关键字。

2.5、java中接口的成员变量必须是public final static修饰的,就是不加这些修饰符,也不会报错,因为编译器会为我们自动加上。

接口的所有成员都应该公开,所以是 public

接口不能实例化,所以只有静态成员: static
接口的成员一定应该是常量,所以是 final。


3.

interface Action {
	void execute();
}
class Some implements Action {
	 void execute() {
		// TODO Auto-generated method stub
		System.out.println("做一些");
	}
}
public class Main {
	public static void main(String[] strings){
		Action action = new Some();
		action.execute();
	}
}
这个程序是有问题的:

execute();方法是public的,只不过是没写出来而已,Some类implements之后变成了default的,访问级别变低了,这是不对的,Some中的execute()前面没有@override是没有问题的

4、在interface中可以定义常数。如:public static final int STOP = 0;  public static final int STAT = 1; public static final int UP = 2; public static final int DOWN = 3;这叫做枚举常数,事实上,在interface中也只能定义public static final的枚举常数,为了方便,也可写成

public interface Action{

int STOP = 0;

int RIGHT = 1;

......

编译程序自会帮我们展开。

5、接口之间也可以相互继承,关键字:extends

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13214次
    • 积分:953
    • 等级:
    • 排名:千里之外
    • 原创:85篇
    • 转载:4篇
    • 译文:0篇
    • 评论:1条