Java的接口

#定义:一个抽象类中都是抽象方法,则可以将该抽象类定义成接口。

#接口中的抽象方法必须通过一个类来实现    implements  接口  实现类即一个实现了接口中抽象方法的类,因为Whale类实现了接口中抽象方法,所以Whale类即是实现类。

如://    Mammal mammal = new Whale();
       //    mammal.move();

#如果一个类没有实现接口中的所有抽象方法,则该类必须为抽象类。

#接口中没有默认构造方法,而且也不能定义构造方法。

#接口一般以I开头。

#接口中的变量为public static final常量
也就是说在接口中定义一个变量赋予值,在实现类中可以通过引用接口类名调用此常量。

public interface IMother {
	default void move() {
		System.out.println("evom");
	}
	 String a="wo";
}
	System.out.println(IMother.a);

#接口中的抽象方法默认public abstract。

###

1、在JDK8及其以后版本的JDK中,接口内可以定义静态方法(static修饰的方法)与默认方法(default关键字修饰的方法)
以上讲过接口中全是抽象方法,但要是想有普通方法可以在方法前加static,default,但这只适用于JDK8及以后的版本。

而且接口中的静态方法,实现类无法继承,可接口中的default类可以继承。

是错的但, 

对。 

public interface IMother {
	default void move() {
		System.out.println("evom");
	}
	 String a="wo";
}
public interface IMother {
	static void move() {
		System.out.println("evom");
	}
	 String a="wo";
}


2、继承:Java类只有单继承;但是Java中接口可以多继承    Java中只存在单继承   子接口可以实现父接口中的某些抽象方法错
即class修饰的类名只能有一个继承方,可interface修饰的接口名可以继承多个,但接口本质是抽象类是不能实现的。
3,含有抽象方法的抽象类必须至少有一个子类完全实现了其抽象方法 √ ,含有抽象方法的抽象类一定至少会有一个非抽象类
子接口可以实现父接口中的某些抽象方法错。

 

4、接口重复抽象方法,实现类实现一个;接口中重复常量名,实现类必须指定到底调用哪个接口中的常量.

不然会出现:

但可以指明一个如:System.out.println(IMother.a);
5、public protected friendly private 只有public 和默认的能修饰类和接口。

 

 

6、一个类可以实现一个或n个接口;如果一个类没有实现接口中所有的抽象方法,则该类必须为抽象类。

验证后半句:

 

7,如果接口内只定义一个抽象方法,则该接口称为函数式接口,如下例:

@FunctionalInterface
interface IMammal {
	
	String NAME = "哺乳动物";
 
	void move();
 
	public default void eat() {
		System.out.println("哺乳动物正在吃......");
	}

 

注意: 可以使用@FunctionalInterface 注解来验证一个接口是不是函数式接口,Java8中java.lang.Runnable、java.util.Comparator<T>都是函数式接口; 函数式接口中可以定义多个常量、多个默认方法和多个静态方法,但只能定义一个抽象方法及多个java.lang.Object中的public方法,如下例:

@FunctionalInterface
interface IMammal {
 
	void move();
	
	boolean equals(Object obj);
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值