黑马程序员技术交流社区

标题: Java基础学习第九天总结 [打印本页]

作者: guizhongxiaobai    时间: 2016-8-5 23:05
标题: Java基础学习第九天总结
多态:
        前提:  有继承(继承普通的类,或者继承抽象类)关系(或者实现的关系)
                有方法的重写
                        我们在使用多态的时候 就是为了使用 让父类的引用来调用子类重写的方法
                        如果没有方法的重写就没有意义了 也就不叫多态了
                有父类的引用指向子类对象

        多态中成员变量的使用:
                编译看左边 运行也看左边
        多态中成员方法的使用:
                编译看左边 运行看右边
        多态中静态成员的使用:
                编译看左边 运行也看左边
                在多态的时候 父类的引用除了子类重写的方法是调用的子类的之外 其他的都是调用的父类的
                        如果父类没有 编译就报错
        多态的利弊
                好处:提高了代码的扩展性和维护性
                        一般把父类的引用当做形式参数来用(开发中都这样用 接收一个任意的子类对象,方法里面调用子类重写的方法)
                坏处:不能使用子类特有的方法和属性
                        如果非要用?
                        向下转型和向上转型
                        如果父类的引用非要用子类特有的东东,把父类的引用强制向下转型为子类
抽象类abstract:
        特点:
                1)抽象类里面可以没有抽象方法,但是有抽象方法的类必须得是抽象类
                2)抽象类不能被实例化
                3)普通子类继承抽象类,必须全部重写抽象类里面的抽象方法,要不子类也是抽象类
        成员特点
                成员变量:抽象类里面可以有变量 也可以有常量, 注意abstract不能修饰变量和常量
                构造方法:有 (是为了给子类创建对象的时候初始化父类用的);
                成员方法:可以有抽象方法 也可以没有

        面试题:
                1)一个类中,没有抽象方法,可不可以定义为抽象类呢?可以! 这样的话 是强制要求外界不能创建这个类的对象
                2)abstract不能和哪些关键字共存
                        private:private是不能被继承的,所以不能被重写,而abstract强制要求子类重写,矛盾
                        final: final表示最终的意思,修饰方法,不能被重写,而abstract强制要求子类重写,矛盾
                        static: static是为了让所有对象共享,为了让类名调用,来执行一些方法里面的内容的,而abstract修饰方法是抽象的没有方法体,矛盾!
接口interface:对外提供一种规范
        1)接口不能是实例化(不能创建接口的对象)
        2)接口中的变量 都是常量  前面都有默认修饰符 public static final 永远建议手动给出
        3)接口中的方法 都是抽象的   前面都有默认修饰符 public abstract 永远建议手动给出
        4)接口中没有构造方法

        类与类:类继承类  只能单继承 不能多继承 可以多层继承
        类与接口: 实现关系 可以多实现
        接口与接口:继承关系 可以多继承 也可以多层继承
                问:java中有多继承吗? 有接口与接口之间可以多继承

        抽象类和接口的区别:
                成员变量:抽象类有变量和常量 而接口只有常量
                构造方法:抽象类有构造方法 而接口没有
                成员方法:抽象类里面可以有非抽象方法 而接口里面只有抽象方法
作者: 15105106710    时间: 2016-8-5 23:52
整理的很不错,受用啦。
作者: lovebaby    时间: 2016-8-6 00:16
总结的那么全面
作者: gonghe    时间: 2016-8-6 09:51
不错,很全面
作者: yaozequan    时间: 2016-8-6 11:31
学得不错!
作者: accomplonely    时间: 2016-8-6 11:46
笔记??
作者: itcoder    时间: 2016-8-6 18:47
呵呵,不错不错!楼主加油哈!
作者: ゞPromiseYou    时间: 2016-8-6 21:11
哎呦 ,不错哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2