20180714_06_Java中面向对象(3)抽象类,多态,接口

抽象类

 

      抽象方法的格式:

                    public abstract(必须写)  方法名() ;  //抽象方法 

      注意:

                 1)如果一个类中有抽象方法,那么这个类一定抽象类

                 2)抽象类中一定有抽象方法吗? 还可以非抽象的 

     抽象类的特点:

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

                 2)子类必须重写父类的抽象功能

     抽象类的子类:

           1)抽象类的子类如果是抽象类,没有任何意义,因为使用的就是通过具体类创建对象,具体类都抽象类,没意义! 

           2)子类是具体类的话,对象的创建工作,由子类完成--->

                 父类名  对象名 = new 子类名() ; 抽象类多态

  实际工作中:

          1)接口多态(用的最多)

          2)抽象类多态

          3)具体类对象的创建

 

 抽象类成员的特点:

          成员变量:

            可以是变量,也可以是一个常量(自定义常量)

         构造方法:

              所有的构造方法都是给对象进行初始话:1)默认初始化 2)显示初始化

          成员方法:

              可以是抽象的方法,也可以非抽象的方法

多态:

      多态的前提条件:

           1)必须有继承关系

           2)必须方法重写

           3)必须有父类引用指向子类对象        :向上转型

                  格式:

                      父类名  对象名  = new 子类名() ;

  多态中的成员访问特点

          1)成员变量的访问特点:

              编译看左,运行看左    (:父类)

         2)成员方法(一般没有强调静态方法都是非静态的)的访问特点:

             编译看左,运行看右

          3)构造方法:作用:就是给对象进行初始化的

          4)静态的成员方法的访问特点:

             编译看左,运行看左(静态的成员方法算不上方法重写,因为静态的都和类有直接关系!)

 

 方法重写:override:继承里面的技术

           当子类出现了和父类一模一样的方法的时候,子类的方法会重写(覆盖,  )父类的方法,调用的子类的功能

  方法重载:overload:方法里面的

          在方法中,多个方法名相同,并且他的参数列表不同,与返回值无关

           参数列表不同:

                         1)参数个数不同

                         2)参数类型不同

接口: (开发过程中要遵循面向接口编程!)将一些额外(扩展)功能,暴露出来,只要哪些类实现了这个接口,就一定要取实现接口中的功能!  

      格式:

           interface 接口名{      

           } 

      接口的实现类和接口之间是一种实现关系

           class 类名  implements(实现) 接口名{  

           }

  接口的子实现类:

      1)如果接口的实现类是一个抽象类;没有意义,接口本身不能实例化,需要通过子实现类来进行实例化,如果子实现类都被抽象了,不能创建对象了,这种没意义!

        2)接口的实现类是具体类,接口名 对象名 = new 子实现类名() ;

           接口多态(推荐方式:开发中这种方式最多)

  接口不能实例化(不能创建对象)

  实际开发中命名规则:

      实现类命名规则:接口名+impl :实现类

猜你喜欢

转载自blog.csdn.net/Lisiluan/article/details/81177487
今日推荐