讲师笔记,Java基础学习之路之day11——多态,动态绑定,抽象类,接口,final,设计模式

多态在成员方法中:
    在编译期,参考p变量所属的类中是否有调用的方法,如果有编译通过,没有编译失败
    在运行期,参考p变量指向的对象,所属的类中是否有调用的方法 
    
动态绑定 :
    当父类引用指向子类对象时,在运行期虚拟机会根据对象所属的类型 来决定调用哪个方法。
 
 抽象类
    抽象方法 : 只有方法的声明,没有方法体
    
    1.有抽象方法的类 只能定义为抽象类    (抽象类中只能定义抽象方法吗?错误)
    2.抽象类和抽象方法 必须用abstract关键字修饰
    3.抽象类 不可以用new来创建对象,因为调用抽象方法毫无意义
        抽象类有构造方法,但是只能被子类调用
    4.抽象类的作用:希望被继承,对于父类没有实现意义的方法必须让子类重写
    
    5.如果一个类继承了抽象父类,但是没有重写父类的所有抽象方法,该类还是个抽象类。
    6.抽象方法不能用static来修饰,静态方法不能被重写的。

------------------------------------------------------
    
接口
    当抽象类中的方法全都是抽象方法的情况下,该类可以通过接口的形式来定义。    
    interface定义接口
    
    1.接口中只包含常量和抽象方法。
    2.接口中没有构造方法,不能用new来创建对象。
    3.类与类之间是单继承, 接口与接口之间是多继承
    
    类通过implements实现接口  :  类与接口之间是实现关系
        1.一个类可以实现多个接口 
        2.一个类可以在继承一个父类的同时,实现多个接口 --继承在前实现在后
            class Dog extends Animal implements CrossFire,Jump
        

一个类是抽象类的情况:
    1.包含抽象方法
    2.一个类继承抽象父类,但是没有重写父类的所有抽象方法
    3.一个类实现接口,但是没有实现接口中的所有抽象方法
    

接口和抽象类的异同:
    相同点:
        都包含抽象方法
        都不能用new来创建对象
    不同点:
        接口中没有构造方法,抽象类可以包含构造方法
        接口中只有常量,抽象类中还可以有属性和静态变量
        接口中只有抽象方法,抽象类还可以有非抽象方法
        接口与接口之间是多继承  类与类之间是单继承

------------------------------------------------------

final 最终的 可以修饰变量,方法 ,类

final修饰的变量 :只能初始化一次,以后不能再改变
有三种:
        静态变量  
            可以在定义静态变量时  或者 静态代码块中进行初始化
        成员变量
            可以在定义成员变量时  或者  代码块中    或者构造方法中进行初始化
        局部变量
            只有栈中的值不可以修改

final修饰类:该类不能被继承
final修饰方法:该方法不能被重写

------------------------------------------------------

设计模式
    单例模式
    解决一个类的内存中只存在一个对象
    不论何时 不论何地 获取某个类的对象 获取到的是同一个对象
    
    思路:
    1.避免外部随便new对象,当前类构造方法不能公开,禁止外部类创建对象。
    2.构造方法不公开,只能在当前类中建立对象。
    3.为了让外部能够访问该类对象,提供对外访问方法。
    
    实现单例:
    1.构造方法私有化
    2.提供静态私有的成员变量:用来保存该类唯一对象
    3.提供公开的静态方法:供外部访问唯一对象

猜你喜欢

转载自blog.csdn.net/u011189148/article/details/81417071
今日推荐