首页 > 代码库 > 抽象类和接口

抽象类和接口

抽象类:

关键字abstract:   一个类如果被abstract修饰那么这个就叫抽象类

                  

         1.abstract修饰的方法,称为抽象的方法

       2.abstract修饰的类,称为抽象类

       3.一个类继承了抽象类,必须要实现抽象类中的抽象方法

 

         abstract 关键字使用:

                            1.一个方法没有方法体,这个方法必须要用abstract来修饰

                            2.一个类中有抽象方法,这个类必须用abstract来修饰,为抽象的类

                            3.一个非抽象的类,继承了这个抽象类,那么这个非抽象类中必须重写所有的抽象方法

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

                            5.抽象类中可以有构造方法,作用是让子类能够初始化父类中的变量

                            6.抽象类不能创建对象

原因:如果创建对象,对象就可以调用抽象方法,这样调用抽象方法(没有具体的实现)没有意义

                            7.抽象类中可以没有抽象方法

        

abstract的使用场景:

事物存在某种行为,但又不具体,那么可以抽取这种行为,声明一个没有实现的行为,

这种行为称为抽象的行为,这个时候就需要用到抽象类。

 

abstract class Animal  // abstract修饰的类,为抽象类

{

abstract public void run(); // 抽象方法时没有主体,没有方法的具体实现

}

非抽象类继承了抽象类,必须实现抽象类的所有方法

        

abstract不能和那些关键字连用:

              1.不能和private (抽象必须要重写,但是私有的不能重写)

              2.不能和static使用(static修饰的方法不能被重写,而abstract修饰方法本身没方法体的必须重写)

              3.不能final一起使用 (final是修饰的方法不能被重写,抽象的是需要重新写的)

 

接口:用来添加扩展功能

Eg..带橡皮擦的铅笔,拥有橡皮擦的功能,又拥有写字的功能,java中又不能出现既集成铅笔又继承橡皮擦,所以引出了借口(解决单继承问题)

interface关键字

       接口定义模式:

              用interface关键字来表示接口

              结构:interface 接口名{};

 

Implements关键字

       实现接口中的方法,需要用实现(implements)来完成

       结构:class 类 implements 接口名1,接口名2...

                     {

                     }

java 中支持多实现,即一个类可以实现多个接口,类如果实现了一个接口,需要将接口中的方法都实现

       作用:  1.用来拓展功能

                 2.让程序解耦

                 3.定义约束

      

       接口使用注意事项:

              1.接口是一个特殊的类,可以定义属性和方法

              2.属性默认final修饰,  public static final实际上是一个常量

              3.方法都是抽象的       abstract public

              4.接口不能创建对象

              5.接口没有构造方法

              6.接口是给类去实现的,非抽象类实现接口时,必须将接口中方法都实现。

抽象类和接口