JAVA基础(十二)抽象类与接口

抽象类

总结:

                类支持单继承。接口支持多继承

                类与类单继承,

                类实现接口,接口继承接口,先继承后实现

   自己理解  抽象类:描述笼统的,模糊,不具体的具有共性的类 

抽象类格式

Public abstract class 类名{

     成员变量

//方法

    public  abstract     返回值类型   方法名  (参数);

    Public   abstract         void    get   ();//抽象函数。需要abstract修饰,并分号;结束

}

 

1.1      抽象类的特点:

                         1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。

                         2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。

                          3、只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。

                          4. 之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单                                                                    

                           5.、Java抽象类中不能有静态的抽象方法。
                           6.接口中不能有静态的抽象方法
                            7.抽象类不一定有抽象方法

抽象类  思想

                     1.抽象类一定是个父类,因为抽象类需要其子类覆盖所有的抽象方法,才可以对子类进行实例化对象

                      2.抽象类中可以不定义抽象方法。                                                                                                        

                      3. 一旦一个类继承了抽象类,。                                                                                                           

                                       3.1  子类要么重写父类的方法,明确其功能

                                       3.2     要么继续抽象下去

       1、private:

                私有的方法子类是无法继承到的,也不存在覆盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这                                 个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾。

                                             2、final,暂时不关注  3、static,暂时不关注

抽象类与普通类的区别

抽象类:            1.既可以定义抽象方法,也可以定义一般方法

                             2.不可以实例化                                            

                           3.描述的事物可能信息不足                           

普通类:           1.只能定义普通方法                                        

                           2. 可以实例化                                                

                          3. 描述的事物很详细                                      

                           接口

自己理解

                       抽象类是现实事物的描述(模糊描述共有的特点);

                      接口是额外功能的集合

建立接口定义格式:interface   关键字

public interface 接口名 {

                 抽象方法1
                抽象方法2
                抽象方法3;

}                                              

伪代码

public interface Drink {
     //抽象方法
     public abstract void  drink();

}

                           使用interface代替了原来的class,

   其他步骤与定义类相同:

                        1.  接口中的方法均为公共访问的抽象方法

                        2.  接口中无法定义普通的成员变量

 

类实现接口

classimplements 接口 {

   重写接口中方法

}
例子
class 子类 extends 父类 implements 接口 {

       重写父类中方法

        重写接口中方法

}

 

伪代码

public class student implements smoking,Drink(接口支持多继承){

        (  重写接口中方法)

     public void smoke() {

            System.out.println("学生"); 

  }
}
在类实现接口后,该类就会将接口中的抽象方法继承过来,此时该类需要重写该抽象方法,完成具体的逻辑。

成员特点:

                    1、接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中的变量也称之为常量                                                                                                                                      其值不能改变。后面我们会讲解static与final关键字

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

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

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

总结:接口在开发中的它好处

1、接口的出现扩展了功能。

2、接口其实就是暴漏出来的规则(方法)。

3、接口的出现降低了耦合性(融合度),即设备与设备之间实现了解耦。

原文地址:https://www.cnblogs.com/layuechuquwan/p/11287746.html