接口和抽象类

 

抽象类:用abstract修饰的类;和一般的类是一样的,可以有实例方法和抽象方法;

    抽象类可以没有抽象方法的,但是抽象方法必须放到抽象类里面;

    抽象类不可以被实例化(就是类名 名字 = new 类名()),必须被继承

 

抽象方法:就是方法被abstract修饰的,必须放到抽象类里面;

      抽象方法必须被重写;

      抽象方法没有方法体的;

    抽象方法的结构:

      public abstract void eat();

javaSE 8_javaSE 8

 

 javaSE 8_javaSE 8_02

 

 

 

javaSE 8_javaSE 8_03

 

 

 

接口:

  接口是一个特殊的抽象类,理解就是不同类型的事物,的共性或者特点提取出来;

  举个例子:比如飞机和鸟都有飞这个共性,可以写个接口放这个方法

  接口的结构:

    interface接口名{

       //常量的定义和抽象方法定义 

     }

    

  //如何在接口中编写有方法体的方法

  ->方法被default或者static修饰的(这个要jdk1.8以上才可以)

    例子:public default/static void fun(){
        System.out.println("可以实现有方法体的实例方法");

    }

    

    注意:接口的抽象方法一般都是public,这是因为很多类需实现接口,所以要public修饰

    

     //调用接口里面的方法体

       ->我们通过接口名.方法实现调用的

 

    一个类可以实现多个接口,但是只能继承一个类

 

 

javaSE 8_javaSE 8_04

 

 javaSE 8_javaSE 8_05

 

 javaSE 8_javaSE 8_06

 

 

 

 内部类:

  就是类里还有类

  有三种情况:1、在一个类的外部;2在类的里,但是不在方法里面;3.是在类里面,并且在方法里。(不经常用到。下次找个机会详细写一下)