当前位置:   article > 正文

Java学习之接口_interface b extends a{ abstract void b();

interface b extends a{ abstract void b();

可爱的小北又回来啦!喵~~~

今天我们要讲的是java面向对象的接口

当然第一步是思维导图咯:

【1】什么是接口呢?

       

       在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

【2】接口有什么特点呢?

接口特点:A:接口用关键字interface表示              格式:interface 接口名 { }

                  B:类实现接口用implements表示          格式:class 类名 implements 接口名 {  }

                  C:接口不能用于实例化对象

                                             那接口如何实例化呢? 按照多态的方式实例化

                   D:接口的子类:1)可以是抽象类。但是意义不大

                                               2)可以是具体类。要重写接口中的所有抽象方法。(推荐)

小北来给大家上个例子,我们来初识接口:

以下是三个接口:

  1. public interface BB{
  2. void bb();
  3. }
  1. public interface CC {
  2. public void cc();
  3. }
  1. public interface DD{
  2. public void dd();
  3. }

以下是MyDemo类,实现BB,CC,DD接口

  1. //一个类可以实现多个接口
  2. public void MyDemo implements BB,CC,DD{
  3. @Overrride
  4. public void bb() { }
  5. @Override
  6. public void cc() { }
  7. @Override
  8. public void dd() { }
  9. }

以上就是一个很简单的接口实现。

小北认为呢,前两个特点接口用关键字interface表示和类实现接口用implement表示大家应该通过这个例子有所感触了

下面小北再给大家举个例子,以便于大家更深的理解

这是一个MyInterface接口

  1. public interface MyInterface{
  2. int NUM=100;
  3. public static final double D=100;
  4. //接口中成员变量前面的默认修饰符:public static final
  5. //接口中所有的方法都是抽象方法,无非抽象方法
  6. //方法前面默认有修饰符public abstract
  7. //接口中无构造方法
  8. //接口不能创建对象
  9. //接口的子类可以是抽象类
  10. //接口与接口之间可以继承,可以多继承
  11. public abstract void fire();
  12. void hehe();
  13. }

这是一个抽象类Animal

  1. public abstract class Animal{
  2. public abstract void eat();
  3. public abstract void sleep();
  4. }

抽象类Animal的子类,也是MyInterface类的接口实现

  1. public class Dog extends Animal implement MyInterface{
  2. @Override
  3. public void eat(){
  4. }
  5. @Override
  6. public void sleep(){
  7. }
  8. @Override
  9. public void fire() {System.out.println("狗经过学习,会钻火圈了");}
  10. @Override
  11. public void hehe() {System.out.println("呵呵");}
  12. }
  1. public class Cat extends Animal{
  2. @Override
  3. public void eat(){
  4. }
  5. @Override
  6. public void sleep(){
  7. }
  8. }

Test测试类:

  1. public class Test {
  2. public static void main(String[] args) {
  3. //接口不能实例化
  4. MyInterface my = new Dog(); //多态的形式
  5. my.fire();
  6. }
  7. }

最后经过多态的形式,这样就能实现接口的实例化啦

【3】接口成员的特点:

A:成员变量:只能是常量,并且是静态的-------->默认修饰符:public static final

B:构造方法:接口没有构造方法

C:成员方法:只能是抽象方法------------->默认修饰符:public abstract

例子呢上面第一个小北已经给大家给出啦。

【4】关系

A:类与类:继承关系,并且只能单继承,可以多层继承

B:类与接口:实现关系,可以单实现,也可以多实现,并且可以在继承一个类的时候同时实现多个接口

C:接口与接口:继承关系,可以单继承也可以多继承

例子相关的概念上面也都有包括

【5】抽象类和接口的区别

A:成员区别

抽象类:成员变量:可以变量,也可以常量

              构造方法:有

              成员方法:可以抽象,也可以非抽象

接口:   成员变量:只可以常量

             成员方法:只可以抽象

B:关系区别

类与类:继承,单继承

类与接口:实现,单实现,多实现

接口与接口:继承,单继承,多继承

C:设计理念区别

抽象类:被继承体现的是:“is a ”的关系     抽象类中定义的是该继承体系的共性功能

接口:    被实现体现的是:“like a”的关系    接口中定义的是该继承体系的扩展功能

接下来就是今天接口的最后一个实例啦。

首先这是一个接口A

  1. public interface A{
  2. void a();
  3. }

这是接口A的继承接口B(实现接口与接口的继承)

  1. public interface B extends A{
  2. void b();
  3. }

这是一个接口AA

  1. public interface AA{
  2. void aa();
  3. }

同理

  1. public interface C extends B,AA{
  2. void c();
  3. }

接口C的实现

  1. public class MyCat implement C{
  2. @Override
  3. public void c(){
  4. }
  5. @Override
  6. public void b(){
  7. }
  8. @Override
  9. public void a(){
  10. }
  11. @Override
  12. public void aa() {
  13. }
  14. }

好啦,今天的接口部分就到这里啦!喵喵喵~~~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/464090
推荐阅读
  

闽ICP备14008679号