接口

接口时功能的集合,同样可看作是一种数据类型,是比抽象类更为抽象的类。

接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。

接口的格式

public interface 接口名 {

抽象方法1;

抽象方法2;

}

接口的使用

接口的方法全是抽象方法,直接new接口来调用方法没有意义,Java也不允许这样干

类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements

class implements 接口 {

 

重写接口中方法

 

}

接口中成员的特点

1、接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中的变量也称之为常量,其值不能改变。

2、接口中可以定义方法,方法也有固定的修饰符,public abstract

3、接口不可以创建对象。

4、子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类。

 

接口和类的关系

A:类与类之间:继承关系,一个类只能直接继承一个父类,但是支持多重继承

B:类与接口之间:只有实现关系,一个类可以实现多个接口

C:接口与接口之间:只有继承关系,一个接口可以继承多个接口

 

 匿名对象 :  没有名字的对象

 * 匿名对象的应用场景:

 * 当方法只调用一次的时候可以使用匿名对象

 * 可以当作参数进行传递,但是无法在传参之前做其他的事情

 * 注意:匿名对象可以调用成员变量并赋值,但是赋值并没有意义

   new student();

 

匿名实现类

 

abstract

 

1. 抽象类概述

当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体。

 

分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。

2.抽象类的特点

   抽象方法只能在抽象类里面

   抽象类和抽象方法必须被abstract修饰

   抽象类不能创建对象(不能实例化)

  抽象类中可以有非抽象的方法

  抽象类和类的关系也是继承

  一个类继承了抽象类要么重写所有的抽象方法,要么他自己是抽象类

 

 

 

 

 

 

 

 总结:

   

抽象类的成员特点:

   成员变量

       可以有成员变量

       可以有常量

   成员方法

       可以有抽象方法

       可以有非抽象方法

   构造方法

       可以有构造方法的,需要对抽象类的成员变量进行初始化