Java抽象类/接口

一、抽象类:

  1.关键字:abstract ;修饰抽象类,抽象方法;

  2.注释:

    2.1.抽象类不可以创建对象,但是可以被声明引用(强制被使用多态)

    2.2.抽象类不一定包含抽象方法,包含抽象方法一定是抽象类;

  抽象方法:

    1.格式:abstract修饰,且没有{}方法体;因为必须被子类复写,则又方法体也没有意义;

    2.注释:必须被子类复写;

    3.注释:抽象方法不能用private修饰,因为抽象方法必须被实现;

//父类
public abstract class father{
  public  abstract void study(); //无需加{};
}
//子类
class son extends father{
    void study(){
        System.out.println("study");
    }
}
public class test{
    public static void main (String args[]){
        new son().study();
    }
}

二、接口:

  1.接口定义:interface  类定义:class

  2.格式格式:只能定义公有静态常量和公有抽象方法;

     (1)常量:public static final 数据类型 常量名=值;

     (2)方法:public abstract 返回值类型 方法名([参数..])

      //修饰符可以省略,系统会默认;

     (3)接口中的三种方法:

      1)抽象方法;

      2)静态方法,包含方法体;jdk1.8

      3)默认方法,一般是空方法实现;jdk1.8

  3.接口特点:

    (1)接口可以extends继承多个接口,类是单继承;

    (2)接口内可以再定义接口;

  4.接口多态类似继承的多态创建;接口名 实例名=new 实例()

  5.实现调用:

 

//接口
interface Inter{
    public static final int NUM=1;
    public abstract void run();
}
//子类
class SubInter implements Inter{
    public void run(){
        System.out.println(123);
    }
}
public class test{
    public static void main(String[] args){
        SubInter t = new SubInter();
        System.out.println(t.NUM);//实例调用
        System.out.println(Inter.NUM);//接口名调用
        System.out.println(SubInter.NUM);//类名调用
    }
}

 

  6.枚举:

public enum 枚举名{
实例名1,实例名2,实例名3….
}

 

三、抽象类和接口的区别:

  

 

posted @ 2019-07-22 11:54  开拖拉机的拉风少年  阅读(150)  评论(0编辑  收藏  举报