32:多态的好处及弊端?如何解决多态的弊端。
;
好处:提高了程序的可维护性(前提要有继承保证),和扩展性。
弊端:不能使用子类的特有功能。
33:什么是抽象类?抽象类的特点和好处是什么?
相同的方法,有相同方法的声明,但是方法体不一样,只抽取方法声明的方法,叫做抽象方法,有抽象方法的类,叫做抽象类。
特点:
A:类或者方法必须用abstract修饰。
B:具体类在继承抽象类的时候,要么本身也是抽象类,要么实现抽象类中的所有抽象方法。
C:抽象类不能被实例化。要想使用,必须按照多态的方式使用。
D:成员特点:
a:成员变量
可以是变量,也可以是常量。
b:构造方法
有构造方法,但是不能实例化。
用于子类访问父类数据的初始化。
c:成员方法
可以有抽象方法也可以有非抽象方法。
好处:
A:限定子类必须实现某些功能。
B:提高代码的复用性。
抽象类的几个问题:
A:抽象类不能实例化,构造方法有什么用。
用于子类访问父类数据的初始化。
B:抽象类没有抽象方法,有什么意义?
限制创建对象。
C:abstract不能和哪些关键字共存?
final: 冲突
private: 冲突
static: 无意义
34:什么是接口? 接口的特点?
如果一个抽象类中的方法全部是抽象方法,那么java就针对这种类型的抽象类,给出了一个更抽象的表达式:接口。
特点:
A:所有的方法,都是抽象方法。
B:类实现接口
要么本身是抽象类,要么重写接口中的抽象方法。
C:接口不能被实例化,要想使用,用多态。
D:成员特点
a:成员变量
只有常量,并且是静态常量。默认修饰符:public static final
b:构造方法
没有构造方法,子类数据的初始化默认走的是Ojbect类的构造方法
c:成员方法
全部是抽象的,有默认修饰符:public abstract
35:抽象类和接口的区别? (*面试题)
A:成员区别
抽象类:
成员变量:可以是变量,也可以是常量。
构造方法:有。
成员方法:有,可以是抽象的,也可以是非抽象的。
接口:
成员变量:只能是常量。默认修饰符:publci static final
构造方法:没有,子类数据的初始化默认走的是Ojbect类的构造方法。
成员方法:只能是抽象的,默认修饰符是:public abstract
B:类与接口的关系区别
类与类:
继承关系,单继承。
类与接口:
实现关系,单实现、多实现。
接口与接口:
继承关系,单继承、多继承。
C:设计理念的区别
抽象类被继承体现的是:is a的关系。抽象类中一般定义的是整个继承结构的共性功能。
接口被实现体现的是:like a的关系。接口中一般定义的是整个继承结构的扩展功能。
36,什么是内部类?有什么特点?
把类定义在其他类的内部,就被称为内部类。
内部类的访问特点:
A:内部类可以直接访问外部类的成员,包括私有。
B:外部类要访问内部类的成员,必须创建对象。
37,为什么内部类访问局部变量必须加final修饰?(*面试题)
A: 防止在使用后数据发生改变。
B: 延长变量的生命周期。
38,什么是匿名内部类?本质是什么?
匿名内部类就是没有名字的内部类。
格式:
new 类名或者接口名() {
重写方法;
};
本质:是继承类或者实现接口的子类匿名对象。
39,==和equals()的区别? (*面试题)
A:==
a:基本类型 比较的是基本类型的值
b:引用类型 比较的是引用类型的地址值
B:equals()
只能比较引用类型。
默认比较地址值。
40,什么是字符串?字符串的特点是什么?
字符串:由多个字符组成的一串数据。
特点:一旦被赋值就不能被改变。(*面试题)
注意:这里指的是字符串的内容不能发生改变。而字符串的引用是可以再次赋值的。
|
|