Java中的继承

一、继承

1、当一个类需要继承自另一类的时候,使用关键字extends

2、当一个类继承了某个类之后,继承方:子类(派生类)

      被继承方:父类(超类、基类)

3、当子类继承了父类后,就自动拥有了父类中允许被继承的成员,包括成员变量、成员方法,构造方法不能被继承

 

二、继承的优点

1、提高了代码的复用性。

2、由于共享的内容被放置在一个类中,如果有需要更改,只需要修改父类即可

3、为多态提供了前提

 

三、继承的缺点

1、一点继承,则子类依赖于父类,必须要有父类的存在,子类才能编译成功

 

四、继承的特点

1java只允许但继承,一个类只能继承自一个类

2java允许多重继承,如B extends A,C extends B

 

五、继承的注意事项

1、子类只能继承父类的非私有成员(成员变量和成员方法)

2、子类不能继承父类的构造方法,但是可以通过super关键字访问父类的构造方法

3、不要为了部分功能而去继承

六、什么时候使用继承

当子类相对父类是“is a”的关系时,就可以继承

 

七、类与类之间的关系

1."is a"(是一个):常见的就是"继承"

classPerson{}

classStudent extends Person{}

2."has a"(有一个):

class 学生{}

class 老师{}

 

//教室里面有:一个"老师"80"学生"

class 教室{

int 楼层;//自有的属性

int 面积;//自有的属性

老师 tea = new 老师();//"老师"的对象最为"教室"的成员属性

学生[] stuArray = new 学生[80];//"学生"数组作为"教室"的成员属性

}

3."组成关系":一个类中没有"自有成员",全部都是其它的"类类型",由其它""组成的;

classCPU{}

class 硬盘{}

class 主板{}

.....

//"电脑"类全部都是由其它""组成

class 电脑{

CPUcpu;

硬盘 yp;

主板 zb;

....

}

4."依赖关系(关联关系)"

class 学生{}

class 老师{}

 

class 校长{

void talk(学生xs){//由于talk方法接收的是"学生"类型的对象,我们说:"校长类"依赖于"学生类"

}

void talk(老师 ls){

}

}

 

八、继承中的关系

1、父类中的非私有成员会被继承,构造方法不能被继承

2、子类中若有与父类中同名(返回值类型可以不同)的成员变量,则子类中的变量会覆盖父类中的变量

3、在一个方法中使用某各变量,先在本方法中查找,再到成员变量中查找,最后到父类的成员变量中查找,按照就近原则

 

九、继承中构造方法的关系

1、当实例化一个子类的对象时会先实例化父类的对象

2.一个类中如果只提供了带参构造方法,则系统不会再自动提供无参构造方法,当子类继承父类方法时,如果父类没有提供无参构造方法,只有带参的,那么必须在子类的构造方法中显示的调用父类的构造方法

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值