加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java之接口

发布时间:2020-12-15 06:43:28 所属栏目:Java 来源:网络整理
导读:有时必须从几个类中派生出一个子类,继承它们所有的属性和方法,但是,Java不支持多继承,就有了接口, 就可以得到多重继承的效果。 接口是抽象方法和常量值的定义的结合; 从本质上讲, 接口是一种特殊的抽象类, 这种抽象类中只含有常量和方法的定义,而没

有时必须从几个类中派生出一个子类,继承它们所有的属性和方法,但是,Java不支持多继承,就有了接口,就可以得到多重继承的效果。

接口是抽象方法和常量值的定义的结合;

从本质上讲,接口是一种特殊的抽象类,这种抽象类中只含有常量和方法的定义,而没有变量和方法的实现;

实现接口类:class SubClass implements interfaceA{}

一个类可以实现多个接口,接口亦可以继承其它接口;

接口的特点:

  • 用Interface来定义;
  • 接口中的所有成员变量都默认是由public static final 修饰的;
  • 接口中的所有方法都是默认由public abstract修饰的;
  • 接口没有构造器;
  • 接口采用多层继承机制;

接口定义举例:

public interface Runner{
    int ID = 1;
    void start();
     run();
     stop();
}

实现接口的类中必须提供接口中的所有方法的具体实现,方可实例化,否则需要声明为抽象类

接口的主要作用是被实现类实现;

与继承关系类似:接口和实现类中间存在多态性;

当存在继承和实现关系时,先继承后实现;

抽象类在新增抽象方法时存在问题:父类新增抽象方法,子类必须实现该抽象方法,否则子类必须声明为抽象类;

解决方法:新建一个接口,接口中为该抽象方法,让子类去实现;

举个例子:会唱歌的厨师是个好老师。

如果用抽象类来实现:老师--继承--厨师--继承--歌者--继承--人,但是老师、厨师、歌者之间并没有相应的关系;

如果用接口实现:老师--继承--人,然后老师实现厨师接口,老师实现歌者接口;

Person.java

package inf;

abstract class Person {
    String name;
    int age;
     sex;
    
     showInfo();
    
}

Cooking.java

 Cooking {
     fry();
}

Singing.java

 Singing {
     singing();
}

SCTeacher.java

class SCTeacher extends Person implements Cooking,Singing{
    String course;
    
     setInfo() {
        super.name = "tom";
        super.age = 12super.sex = 1this.course = "数学";
    }
    
     showInfo() {
        System.out.println("姓名:"+super.name
                +"n"+"年龄:"+super.age+"n"
                +"性别:"+.sex);
        System.out.println("教的课程是:"+this.course);
    }
     fry() {
        System.out.println("老师的炒菜很好");
    }
     singing() {
        System.out.println("老师的唱歌很好");
    }
}

Main.java

 Main {
    static  main(String[] args) {
        SCTeacher sc = new SCTeacher();
        sc.setInfo();
        sc.showInfo();
        sc.fry();
        sc.singing();
        
//        Cooking c = new SCTeacher();
        c.fry();
    }
}

输出:

姓名:tom
年龄:12
性别:1
教的课程是:数学
老师的炒菜很好
老师的唱歌很好

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读