第二讲__提炼

1.多态

        1.定义

                常见的两种情况:

                1.继承

                        一个类A里面定义了一些方法,另一个类B继承了这个类并重写了A类的部分方法,主函数中用A类(父类)接收了一个B类(子类)对象,此时即时多态。

                2.接口

                        一个接口A里面定义类很多抽象方法,有一个类B实现了这个接口A,那么类B就需要重写接口A里面所有的抽象方法,当类B同时实现了其他接口C、接口D....时,这样这个类B就拥有了多个接口的行为,此时也是一种多态

        2.前提

                1.有继承或实现的关系
                2.存在父类引用指向子类
                3.存在方法的重写(继承)或实现(接口)

        3.好处

                定义方法时,使用父类类型的形参,可以接收一切子类对象,扩展性更强、更便利

        4.弊端

                多态情况下即当:父类 变量 = new 子类(); 时变量可以调用子类重写的父类的方法但是不能调用子类本身独有的方法。

        5.类型转换

                当 4.弊端 情况出现时,可以进行类型的强制转换以实现调用子类独有的方法。
                引用类型中需要使用instanceof关键字进行判断是否为该类型,若转换。

2.final

        final关键字可以修饰:类、方法、变量

        final修饰类时:该类不可再被继承
        final修饰方法时:该方法不可再被重写
        final修饰变量时:该变量不可再被赋值

3.抽象类

        1.定义

                用abstract修饰的抽象类
                用abstract修饰的方法抽象方法

        2.注意事项

                抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类,抽象类中也有非抽象方法。
                抽象类不能创建对象,仅能作为一种特殊的父类,被子类继承并实现。
                一个类继承了抽象类那么这个类就必须重写完该抽象类中所有的抽象方法,否则该类会被定义为抽象类。

        3.模版方法设计模式

        设计模式就是针对某类问题,前人总结出来的解决这类问题的套路,
        模板设计模式的作用是代码复用,把同一类问题常见的需要用的方法进行封装,将角色不同的功能部分定义成抽象方法,由子类继承这个模版并对其中的抽象方法进行重写,
        使用步骤:定义一个抽象类,把子类中相同的代码写成一个模版方法,也就是上面说的同一类问题常见的需要用的方法进行封装,把模块方法中不能确定的代码写成抽象方法,也就是上面所说的将角色不同的功能部分定义成抽象方法,并在模版方法中调用这些抽象方法,最后由子类继承抽象类,只需要重写父类的抽象方法就可以了,也就是上面说的由子类继承这个模版,并对其中的抽象方法进行重写。

4.接口

        1.定义

                1.定义接口

interface 方法名{
    抽象方法...
    非抽象方法...
}

                2.实现接口

public class 实现类 implements 接口名{
    @Override
    public void 抽象方法() {
        //重写抽象方法
    }
    @Override
    .....

        2.注意

                1.接口不能创建对象,接口是用来被实现的,一个类可以实现很多个接
                   补充:
                        1.一个类实现很多类的时候,这个类便拥有了很多接口行为,可以看做多态的一种形式。
                        2.一个类只能继承一个父类,但是一个类可以实现多个接口;一个接口可以继承多个接口。
                2.接口的实现类需要实现接口里面的全部抽象方法,按需使用非抽象方法。若没有实现全部抽象方法,则该类会被定义为抽象类。

        3.好处

                1.面向接口编程
                2.解耦合

        4.JDK8新增的三种方法

                1.默认方法:default
                2.私有方法:private
                3.静态方法:static

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值