JAVA学习25天

一、今日学习接口的使用与继承

JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴是一种应该受到保护的东西”,金丝猴从“应该受到保护的东西”这个类继承。这样金丝猴可以同时从 “动物类”、“值钱的东西类”、“应该受到保护的东西” 这三个类继承,但由于JAVA只支持单继承,因此金丝猴只能从这三个类中的一个来继承,不能同时继承这三个类。因此为了封装现实生活中存在的多重继承现象,为了实现多继承,可以把其中的两个类封装成接口。使用接口可以帮助我们实现多重继承。

1.使用接口

 (1)接口不能单独实例化,需要通过接口的实现类来进行实例化,接口的实现类必须实现接口内的全部方法,

(2)接口的使用

接口的实现类的形式:

[修饰符] class <类名> [extends 父类名]  [implements 接口列表]

实例如下:

接口的实例化:接口名  对象=new 接口的实现类();

例如下面代码中的     Student2 inter=new Interface();

复制代码
package test1;
interface Student2{
    int clas=0604;
    void learning();
    void eat();
    void sleep();
}

public class Interface implements Student2{
    @Override
    public void learning() {
        System.out.println("学生正在学习!");
    }
    @Override
    public void eat() {
        System.out.println("学生正在吃饭!");
    }
    @Override
    public void sleep() {
        System.out.println("学生正在睡觉!");
    }
    public static void main(String[] args) {
        Student2 inter=new Interface();
        inter.eat();
        inter.sleep();
        inter.learning();
    }

}

(3)Java接口的特征归纳 

  • Java接口中的成员标量默认为public、static、final类型的,而对于它们都可以省略,接口中的成员变量为常量,并且建议全部使用大写,单词之间用“-”分隔。
  • Java接口中的方法默认都是public、abstract类型的,并且public和abstract是可以省略的,接口中的方法没有方法体,不能被实例化。
  • Java接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。接口中的变量必须初始化,并且方法必须是抽象方法,否则会报错。
  • 接口中没有构造方法,不能被实例化。
  • 一个接口不能实现另一个接口,但它可以继承多个其他的接口。
  • Java接口必须通过类来实现它的实现类来实现抽象方法。
  • 当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则,这个类必须声明为抽象的。
  • 不允许创建接口的实例化,但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例。
  • 一个类只能继承一个直接的父类,但可以实现多个接口,间接地实现了多继承。

2.接口的继承

(1)接口继承接口

接口只能继承接口,不能继承普通类和抽象类。

复制代码
interface Student2{
    int clas=0604;
    void learning();
    void eat();
    void sleep();
}
interface Student3{
    void play();
}
interface Student4 extends Student2,Student3{
    public abstract void gohome();
}
复制代码

(2)间接实现多重继承

复制代码
package test1;
interface Student2{
    int clas=0604;
    void learning();
    void eat();
    void sleep();
}
interface Student3{
    void play();
}
interface Student4 extends Student2,Student3{
    public abstract void gohome();
}

public class Interface implements Student4{
    @Override
    public void learning() {
        System.out.println("学生正在学习!");
    }
    
    public void eat() {
        System.out.println("学生正在吃饭!");
    }
    
    public void sleep() {
        System.out.println("学生正在睡觉!");
    }
    
    public void play() {
        System.out.println("学生正在玩耍!");
    }
    
    public void gohome() {
        System.out.println("学生正在回家!");
    }
    public static void main(String[] args) {
        Student4 inter=new Interface();
        inter.eat();
        inter.sleep();
        inter.learning();
        inter.play();
        inter.gohome();
    }

}

接口总结:接口和接口之间可以相互继承,类和类之间可以相互继承,类和接口之间,只能是类来实现接口

二、问题

接口的使用不太流畅

三、明日继续学习接口

posted @ 2020-07-30 21:30  居酿圆子  阅读(122)  评论(0编辑  收藏  举报