java中的接口

知識點:java中接口相關概念,接口與實現類之間存在的多態性java

一:java中接口相關概念ide

(1)接口的定義spa

   接口(interface)是一個與類並行的概念,接口中提供了一些特定的功能繼承

(2)接口的特徵接口

a.接口定義是一種功能,該功能能夠被類所實現(implements)例如:class B extends C implements A ,D{}class

b.接口能夠看作一個特殊的抽象類,是常量和抽象方法的一個集合,不能包含變量、通常的方法變量

c.接口中是沒有構造器的並行

d.實現接口的類,必須重寫接口中全部的抽象方法,若沒有重寫全部的抽象方法,則此類爲一個抽象類方法

e.類能夠實現多個接口,而java中的類繼承是單繼承的im

f.接口與接口之間也是繼承關係,並且是能夠實現多繼承的(接口之間繼承)interface E extends A,D{} (A,D爲interface)

public interface A {
int I=0; // public static final 省略了
void method1();//public abstract 省略了
void method2();
}
class C{
}
interface D{
void method3();
}
class B extends C implements A ,D{
@Override
public void method1() {
}
@Override
public void method2() {
}
@Override
public void method3() {
}
}
//接口與接口之間是繼承,能夠是多繼承
interface E extends A,D{
}
二:接口與實現類之間存在的多態性
接口與具體的實現類之間存在的多態性,即調用一些實現包含接口抽象方法的方法,方法有接口形參參數,調用時能夠傳入實現類的實例做爲實參,以下紅色標記代碼  Runner run=new Person()

//接口與具體的實現類之間存在的多態性
class PersonTest{
public static void main(String[] args) {
Person p=new Person();
PersonTest.oneSkill(p);
PersonTest.twoSkill(p);
}
public static void oneSkill(Runner run){ //Runner run=new Person()
run.run();//虛擬方法調用
}
public static void twoSkill(Eat e){ //Eat e=new new Person();
e.eat();
}
}
interface Runner {
void run();//public abstract
}
interface Eat{
void eat();
}
class Person implements Runner,Eat{
@Override
public void run() {
System.out.println("跑步");
}
@Override
public void eat() {
System.out.println("吃飯");
}
}

 運行結果:

相關文章
相關標籤/搜索