Java抽象类&接口

首先我们要知道抽象方法
    抽象方法是一种特殊的方法;只有声明,而没有具体的实现。是对行为上的一种抽象

    abstract void method();
   

假如很多人要支付,有的人要用支付宝,有的人用银联,有的人现金。以上的支付方式都是一种支付行为,那我们可以把这些行为进行抽象,我们就
可以定义一个抽象的支付方法。定义好抽象方法就进行实现抽象方法(支付行为)

    
1.抽象类(abstract):定义标准和规范的作用

    1.带有抽象方法的类 必须是抽象类 ,
      抽象类可以包含0个或多个抽象方法

    2.抽象类不能被实例化

    3.子类继承了抽象父类,
      必须实现父类的所有抽象方法,否则该类也是抽象类

    4.单一性继承
 

2.接口
    
    1.里面必须全部都是public抽象方法
    
    2.可以继承接口
    
    3.定义变量皆为常量
    

    4.实现类implements 实现行为


   5.在JDK1.8以上支持实例方法,但是访问修饰符default


——————————————————————————————————————————
抽象类和接口有什么用
    提高程序扩展性和可健壮性
 
    抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。



抽象类        定义标准和规范的作用   抽象类是对一种事物的抽象,即对类抽象

    包含抽象方法的类 必须是抽象类
    子类继承抽象父类    必须实现父类的抽象方法,否则该类也是抽象类
    

接口

   接口是对行为的抽象

    里面全部是public抽象方法
    可以继承接口


一个接口可以继承一个接口,不能实现另一个接口
一个类可以实现多个接口,继承一个抽象类

接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
类可以实现很多个接口,但是只能继承一个抽象类
类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
抽象类可以在不提供接口方法实现的情况下实现接口。
Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。
Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。

接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。


总结

抽象类可以用四字形容:有得有失,得到抽象功能,失去实例化。

抽象类功能远超接口,但在开发中使用接口偏多。

当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

你可能感兴趣的:(语言,Java)