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