1、类是什么?类的组成是哪些?
答案:
类:可以理解为构造对象的一个蓝图或者模板,是抽象的概念。
类由成员变量和成员方法组成
2、对象是什么?什么时候需要使用对象?
答案:
对象:是以类为模型创建的具体实例,是对类的一种具体化。
当需要访问成员变量或成员方法的时候,需要使用对象
3、封装是什么?
答案:指隐藏对象的属性和实现细节,仅对外提供公共访问方式
4、继承是什么?
答案:
Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
Java继承是使用已存在的类的定义作为基础建立新类的技术。新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
5、多态是什么?
答案:
多态按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。
多态性是允许你将父对象设置成为何一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
简单的说,就是一句话: 允许将子类类型对象的引用 赋值给父类类型的引用
6、抽象类是什么?
答案:使用了关键字abstract声明的类叫做“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。
7、接口是什么?
答案:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
8、抽象类和接口的区别?
答案:
抽象类:含有abstract修饰的类即为抽象类,抽象类不能创建实例对象。含有abstract方法的类必须定义为抽象类,抽象类中的方法不必是抽象的。抽象类中定义抽象方法必须在具体子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
接口:可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
下面比较一下两者的语法区别
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4.抽象类中的抽象方法的访问类型可以使public、protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认修饰即为public abstract类型。
5.抽象类中可以包含静态方法,接口中不能包含静态方法
6.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7.一个类可以实现多个接口,但只能继承一个抽象类。
9、匿名对象是什么?怎么用?
答案:匿名对象,就是没有名字的对象。是对象的一种简化表示形式。
匿名对象的两种使用情况
1.对象调用方法仅仅一次的时候
2.作为实际参数传递
10、成员变量和局部变量的区别?
答案:
在类中的位置不同
成员变量 类中方法外
局部变量 方法内或者方法声明上
在内存中的位置不同
成员变量 堆内存
局部变量 栈内存
生命周期不同
成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同
成员变量 有默认的初始化值
局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。
11、构造方法的特点?构造方法的注意事项?
答案:
构造方法的特点:
方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
构造方法注意事项:
如果我们没有给出构造方法,系统将自动提供一个无参构造方法
如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
注意:这个时候,如果我们还想使用无参数构造方法,就必须自己给出。建议永远自己给出无参数构造方法。
12、方法重写是什么?注意事项是什么?
答案:
方法重写:指子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写
使用特点:
如果方法名不同,就调用对应的方法
如果方法名相同,最终使用的是子类自己的
需要注意的问题:
父类中私有方法不能被重写
子类重写父类方法时,访问权限不能更低
父类静态方法,子类也必须通过静态方法进行重写。(其实这个算不上方法重写,但是现象确实如此)
13、请说说下面关键字分别是什么,有什么用?
private
this
super
static
final
abstract
interface
extends
implements
答案:
private:是一个权限修饰符,可以修饰成员(成员变量和成员方法),被private修饰的成员只能在本类中访问。
this:方法被哪个对象调用,this就代表那个对象。this用来解决成员变量与局部变量重名问题。
super:代表父类存储空间的标识(可以理解为父类引用)。
static:静态的意思,static修饰的成员,被类的所有对象共享,也可以通过类名调用。
final:最终的意思,可以修饰类,成员变量,成员方法。
abstract:抽象的意思,用来修饰抽象类与抽象方法
interface:接口的意思,用来定义接口。
extends:继承的意思,通过它可以类与类之间产生继承关系。
implement:实现的意思,通过它可以让类与接口之间产生实现关系。 |
|