您的位置:首页 > 其它

面相对象案例总结

2015-12-16 16:31 218 查看
面相对象案例总结

1.Override 和 Overload的区别?Overload是否可以改变返回值类型?
Override(方法重写):
在子类中,出现和父类中相同的方法申明的现象。
Overload(方法重载):
用一个类中,出现方法名相同,参数列表不同的现象。

Overload和返回值类型无关,所以可以改变返回值类型。

2.this 和 super的区别和各自的作用?
this代表本来对应的引用;
super代表父类存储空间的标识(父类引用,可操作父类的成员)。
使用区别:
A:调用成员变量
this.成员变量名
调用本类的成员变量
super.成员变量名
调用父类的成员变量
B:调用构造方法
this(...)
调用本类的构造方法
super(...)
调用父类的构造方法
C:调用成员方法
this.成员方法名
调用本类的成员方法
super.成员方法名
调用父类的成员方法
总结:this访问本类成员,super访问父类成员。

3.一个类的初始化过程(总结的好像有问题,看出问题的朋友请指正)
A:成员变量初始化
a:默认初始化
b:显示初始化
c:构造方法初始化
注意:子类构造方法执行前默认先执行父类的无参构造方法
 子类的构造方法的第一条语句默认都是:super();
 
解释:子类继承父类中的数据,有可能会使用,所以,子类初始化之前
 必须先完成父类的初始化
 

5.分层初始化
即子父类初始化(子类初始化之前先初始化父类)
看程序写结果
class X{
Y y = new Y();
X(){
System.out.print("X");
}
}
class Y{
Y(){
System.out.print("Y");
}
}
public class Z extends X{
Y y = new Y();
Z(){
super();
//难点在于,这里super()仅仅表示分层初始化
System.out.print("Z");
//与顺序执行无关。
}
public static void main(String[] args){
new Z();
}
}
结果:YXYZ

6.关于抽象类的三个小问题
A:抽象类无法实例化,那么其构造方法存在的目的是什么?
答案:用于子类访问父类数据的初始化。
B:没有抽象方法,但却定义为抽象类的类,有什么用:
答案:为了不让创建对象。
C:abstract不能和那些关键字共存
a:final
冲突
b:private
冲突
c:static
无意义

7.接口成员的特点
A:成员变量
只能是常量,默认修饰符:public static final
B:构造方法
没有构造方法
C:成员方法
只能是抽象的方法,默认修饰符:public abstract

8.成员内部类问题(看程序写结果)
class Outer{
public int num = 10;
class Inner{
public int num = 20
public void show(){
int num = 30;
System.out.print(num);
System.out.print(this.num);
System.out.print(Outer.this.num);
}
}
}
答案:30 20 10

9.匿名内部类问题(补齐代码)
interface Inter{
void show();
}
class Outer{
//填写代码
}
class OuterDemo{
public static void main(String[] args){
Outer.method().show();
}
}
输出:hello
答案:public static Inter method(){
return new Inter(){
public void show(){
System.out.println("hello")
}
};
}

10.匿名内部类的使用
interface Person{
public abstract void study();
}
class PersonDemo{
public void method(Person p){
p.study();
}
}
class Test{
public static void main(String[] args){
PersonDemo pd = new PersonDemo();
pd.method(new Person(){
public void study(){
System.out.println("javaSE");
}
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: