黑马程序员技术交流社区

标题: day09笔记 [打印本页]

作者: gcno93    时间: 2016-9-6 22:35
标题: day09笔记
1、多态是什么,多态的前提条件是什么?
        多态是什么:
                事物存在的多种形态
        多态的前提条件:
                1.必须存在继承关系
                2.必须存在方法重写
                3.父类的类型引用子类的对象
2、多态中成员访问的特点分别是什么?
        成员变量  编译看左边,运行看左边
        成员方法(非静态方法) 编译看左边,运行看右边
        静态方法 编译看左边,运行看左边

3、多态的好处和弊端分别是什么?
        好处:
                1.提高代码的复用性(继承保证)
                2.提高代码的扩展性(多态保证)
                3.可以作为形参,接收任意类型的子类
        弊端:
                1.不能访问子类特有的方法和变量

4、什么是向上转型,什么是向下转型?
        向上转型:子类引用赋值给父类引用
        向下转型:父类引用赋值给子类的引用
5、什么是抽象类,它的特点是什么?
        什么是抽象类:
                抽取相同或相似的部分
        特点是什么:
                1.抽象类不一定有抽象方法,但有抽象方法的必须是抽象类或接口
                2.抽象类或抽象方法由abstract修饰
                3.抽象类不能实例化,可以通过多态的方式,由具体的子类实例化,
                        这也是多态的一种,构造类的多态
                4.抽象类的子类可以是抽象类,也可以是实现了抽象类所有的抽象的方法的具体类
6、抽象类的成员特点有哪些?
        成员变量:可以是常量,也可以是变量,不能被abstract修饰
        成员方法:可以是抽象方法,也可以不是抽象方法
                抽象方法:父类必须让子类做的事
                非抽象方法:子类继承,提高代码的复用性
        构造函数:有,用来初始化子类访问父类的数据
7、抽象类的面试题:
       
        A、一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
        可以,这样做的原因只有一个那就是不想本类被其他类所继承,留给子类去做
       
        B、abstract不能和哪些关键字共存,为什么?
                static:
                        被static修饰的方法可以被类名调用,而被abstract修饰的方法
                                是没有方法体的,所以类名调用是没有任何意义的
                private:
                        被private修饰的方法是不能被子类继承的,而被abstract修饰的方法
                                是必须被子类继承重写的,所以它们自相矛盾
                final:
                        被final修饰的方法是不能被子类重写的,而被abstract修饰的方法
                                是必须被子类继承重写的,所以它们自相矛盾
8、什么是接口,它的特点是什么?
        什么是接口:
                1.从狭义上讲就是java中的interface
                2.从广义上讲就是对外制作规范的都叫接口
                特点:
                        1.接口是用interface修饰的
                        2.类实现接口用implement关键字
                        3.接口不能被继承
                                可以通过多态的方式实例化
                        4.接口的子类
                                要么是继承接口的抽象方法
                                要么就是实现了接口所有抽象方法的具体类
                9、接口的成员特点有哪些?
        特点
                成员变量:只能是常量,并且是静态和公共的,默认的修饰符是 public static final
                成员方法:只能是抽象方法,默认的修饰符为 public abstract
                构造方法:没有构造方法


10、抽象类和接口的区别是什么?
        抽象类和接口的区别:
                成员变量:
                        抽象类:可以是常量,也可以是变量
                        接口:只能是常量
                成员方法:
                        抽象类:可以是抽象方法,也可以是非抽象方法
                        接口:只能是抽象方法
                构造函数:
                        抽象类:有构造方法
                        接口:没有构造方法
                设置理念:
                        抽象类:定义了该体系的共性功能
                        接口:定义了该体系的扩展功能






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