您的位置:首页 > 运维架构

oop_day04_继承、重写_20150812

2015-08-12 21:38 483 查看
oop_day04_继承、重写_20150812

1.继承:

1)作用: 代码的重用

2)通过extends实现继承

3)父类/基类:所有子类所共有的变量和方法

子类/派生类:子类所特有的变量的方法

4)当子类继承父类后,子类具有:

------子类所特有的+父类所共有的

5)一个类只能继承一个父类----单一继承

一个父类可以有多个子类

6)继承具有传递性

7)java规定: 构造子类之前必须先构造父类

子类构造方法的第一句默认有个super()调父类的无参构造

若自己通过super调用父类构造的话,则不再默认提供

super调用父类构造,必须位于子类构造的第1句

2.super:指代当前对象的父类对象

用法:

1)super.成员变量名------访问父类的成员变量

2)super.方法名()-----------调用父类的方法

3)super()---------------------调用父类的构造方法

代码示意:

class Coo{
int a;
Coo(int a){
}
}
class Doo extends Coo{ //什么都不写,报错

/*
//默认代码
Doo(){
super();
}
*/
//解决
Doo(){
super(1);
}

}


3.向上造型:

1)父类型的引用指向子类的对象

2)能点出来什么,看引用的类型

4.方法的重写(override):

1)发生在父子类中,方法名相同,参数列表相同,方法体不同

2)重写方法被调用时,看对象的类型

代码示意:

package oo.day04;

public class OverrideDemo {
public static void main(String[] args) {
OAoo o1 = new OBoo(); //向上造型,父类引用指向子类对象
OAoo o2 = new OCoo();
test(o1);
test(o2);
}
public static void test(OAoo oo){
oo.show();
}

}
class OAoo{
void show(){
System.out.println("Aoo-show()");
}
}
class OBoo extends OAoo {
void show(){
System.out.println("Boo-show()");
}
}
class OCoo extends OAoo {
void show(){
System.out.println("Coo-show()");
}
}


总结:java的三大特性之一:继承
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: