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….

}

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

  

猜你喜欢

转载自www.cnblogs.com/Tractors/p/11225000.html