java中的接口

作者: 小漫画ing | 来源:发表于2019-02-26 23:31 被阅读0次

接口的特点:

A:接口用关键字interface表示;
格式:interface 接口名{}
B:类实现接口用implements表示;
格式:class 类名 implements 接口名 {}
定义一个动物培训的接口:

interface AnimalTrain{
    public abstract void jump();
}

C:接口不能实例化;
按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态。

D:接口的子类
要么是抽象类
要么重写接口中的所有抽象方法
抽象类实现接口(这样的意义不大):

abstract class Dog implements AnimalTrain{
    //因为AnimalTrain类中得jump()方法是抽象的,所以这里定义为抽象类;
}

具体类实现接口:

class Cat implements AnimalTrain{
     public abstract void jump(){
          System.out.println("猫可以跳高");
      }
}
class InterfaceDemo{
  public static void main (String[] args){
      AnimalTrain at=new Cat();
      at.jump();//猫可以跳高
}
}

接口的成员特点:

A:成员变量
接口中的变量是常量,并且是静态的,默认的。

package cn.manman.com;
interface Inter{
    public int num=10;
    public final int num2=20;
    
}
class InterImpl implements Inter{
    
}
public class jiekou {
    public static void main(String[] args) {
        Inter inter=new InterImpl();
        System.out.println(inter.num);
        System.out.println(inter.num2);
    }
}

结果

B:成员方法
接口的方法必须是抽象的,默认修饰符是public abstract;

abstract void show();//默认是public
public void show1();//默认抽象

C:构造方法
接口没有构造方法;

类与类,类与接口,接口与接口

  • 类与类:
    继承关系,只能单继承,可以多层继承;
  • 类与接口:
    实现关系,可以单实现,也可以多实现,并且可以在继承一个类的同时实现多个接口;
  • 接口与接口:
    继承关系,可以单继承,也可以多继承;

练习:

1、猫狗案例,加入跳高的额外功能

package cn.manman.com;
//定义抽象类

abstract class Anmail{
    private int age;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    private String name;
    public Anmail(){};
    public Anmail(int age,String name){
        this.age=age;
        this.name=name;
    }
    //睡觉
    public void sleep(){
        
    }
    //吃饭
    public abstract void eat();
    
}
//定义跳高接口
interface jump{
    public abstract void jump();
}
//具体猫类
 class Cat2 extends Anmail{
    public Cat2(){};
    public Cat2(int age,String name){
        super(age,name);
    }
    public void eat(){
        System.out.println("猫吃鱼");
    }
    
}
//具体狗类
class Dog2 extends Anmail{
    public Dog2(){};
    public Dog2(int age,String name){
        super(age,name);
    }
    public void eat(){
        System.out.println("狗吃骨头");
    };
}
//有跳高功能的猫
class CatJump extends Cat2 implements jump{
    public CatJump(){};
    public CatJump(int age,String name){
        super(age,name);
    }
    public void jump(){
        System.out.println("猫可以跳高");
    };
}

//有跳高功能的狗
class DogJump extends Dog2 implements jump{
    public DogJump(){};
    public DogJump(int age,String name){
        super(age,name);
    }
    public void jump(){
        System.out.println("猫可以跳高");
    };
}
public class anli_maogou {
    public static void main(String[] args) {
        CatJump catJump=new CatJump();
        catJump.setAge(10);
        catJump.setName("小漫画");
        System.out.println("猫的名字是:"+catJump.getName()+","+"年龄是:"+catJump.getAge());
        catJump.eat();
        catJump.jump();
    }
}

结果

相关文章

  • Collection接口

    java中的java.util.Collection接口是集合的顶级接口,继承了Iterable接口,jdk中并没...

  • MVP简单介绍和内部接口介绍

    【Android - 框架】之MVP模式的使用 Java中的内部接口 Java中接口中的方法定义规则 Java中的...

  • Java8 编程规范入门之【接口允许方法实现】

    JAVA8中接口interface引入方法实现的猜想 在JAVA8之前java中的接口类型旨在定义类型的接口规约,...

  • 4.接口、内部类、枚举类

    Java中的接口: 在Java中最小的程序单元就是类,接口其实是一个特殊的类. Java中的接口表示规范,用于定义...

  • java成神之路---集合框架

    标签(空格分隔): java java集合类库的设计思想:“接口与实现分离” java类库中的集合接口和迭代器接口...

  • 第九节 netty前传-NIO 补充Path和File

    NIO Path Java NIO.Path接口位于java.nio.file包中,所以Java Path接口的完...

  • kotlin的接口

    kotlin的接口和java的使用几乎一样Java是单继承多接口的语言,kotlin也是如此,java中是实现接口...

  • 【JAVA】Java中的接口

    0x01 接口 在Java中,接口表示一种规范,要求实现者必须遵循这个规范,用来约束使用者该怎么做 必须要求实现者...

  • Comparable与Comparator的区别

    Comparable接口: 位于java.lang包下。在java中实现了该接口的对象可以排序。重写该接口中...

  • 42 函数式接口

    函数式接口在Java中是有且只有一个抽象方法的接口,java中就是使用Lambda接口作为函数式接口 定义接口格式...

网友评论

    本文标题:java中的接口

    本文链接:https://www.haomeiwen.com/subject/ijpayqtx.html