java学习笔记 02

接口

接口是功能的集合,接口只描述应该具备的方法而无具体实现方法。接口的具体实现是由接口的实现类完成的。

接口定义(interface)

public interface 接口名{
	抽象方法1;
    抽象方法2...
}

注意:
1. 接口中方法均为公共访问的抽象方法;
2. 接口中无法定义普通话成员变量;

接口实现类(implements)

接口实现类,实现接口功能的类,前提其是一个类(class);
定义格式:

class 类名 implements 接口名{
	重写接口中的所有方法
}

在实现接口后,该类会将接口中所有的抽象方法继承过来,必须重写所有方法完成具体逻辑,否者将成为一个抽象类;

接口成员特点

  1. 接口中才可以定义变量,但是需要固定修饰符**< public static final >** 接口中的成员变量虽然也称之为变量,但是是固定无法改变的;
    注意:
    • 修饰符可以省略不写也可以选择性写;
    • 常量被静态修饰,可以用类名直接调用,被接口名直接调用;
        public interface Demo{
        	public static final int x = 1public abstract void func1();
     	}
        public static void main(String[] args){
        	System.out.println(Demo.x);
        }
    
  2. 接口中可以定义方法,但是需要固定修饰符**< public abstract >**;
  3. 接口与抽象类一致,无法创建对象;
  4. 实现类必须覆盖接口中所有的抽象方法后,才可以实例化。
public interface Demo{
	public static final int x = 1public abstract void func1();
}
class InterfaceImpl implements Demo{
	public static void func1(){
    	System.out.println("implements");
    }
}```
 
## 接口的多实现
由于实现类需要重现接口中的方法,而方法的实现是依靠实现类实现的,所以并不会产生类多继承的错误;  
注意:
	* 应当避免多实现时,不同接口拥有相同函数名返回值类型不一样的函数,此时无法重写函数;
```java
public interface A{
	public abstract void a()}
public interface B{
	public abstract int a()}
// 接口多实现无法实现重写
public class InterfaceImple A,B{
	public static void a(){
    	System.out.println("implements");
    }
}

接口间的多继承

与类之间的继承相似,接口与接口之间也可以产生继承关系,多个接口之间可以使用(extends)进行jicheng

类继承类的同时实现接口

子类可以通过继承父类扩展功能,也可以通过接口的功能实现功能的拓展。

public interface A {
	public abstract void a()}
public interface B {
	public abstract void b()}
public abstract class C {
	public abstract void c()}

public class D extends C implements A, B{
	public void a(){
    }
    public void b(){
    }
    public void c(){
    }
}

学习笔记,望指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章