zoukankan      html  css  js  c++  java
  • 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、接口的出现降低了耦合性(融合度),即设备与设备之间实现了解耦。

  • 相关阅读:
    第3章 机器学习的典型应用 3-2 典型应用-聚类
    第3章 机器学习的典型应用 3-1 典型应用-关联规则
    6-13 Hog特征1
    6-12 SVM小结
    Linux中常见的环境变量笔记
    Linux中常见的环境变量笔记
    Linux中shell变量基础概念笔记
    Linux中shell变量基础概念笔记
    Linux常用内建命令笔记
    Linux常用内建命令笔记
  • 原文地址:https://www.cnblogs.com/layuechuquwan/p/11287746.html
Copyright © 2011-2022 走看看