Java基础------继承

今日学习的重点内容--------继承

1、继承的概念:
	举例:工人类,军人类,其他类等,为了书写格式以及访问方便,需要定义独立的类,将其他类中的共性内容抽取出来,存放该独立的类中
让独立的类(父类/超类)和其他类(子类)产生一种关系,将这种关系成为"继承关系"
2、继承的格式:
	子类名  extends  父类名{}
3、继承的好处:
	提高了代码的复用性(代码结构清晰)
	提高了代码的维护性
	类和类产生的这种“继承关系”,是多态的前提条件
*继承的关系也是一种弊端,类和类产生关系,耦合性就增强了。
4、开发中的原则:(Java很多的开发原则都要遵循下面六个字)
	低耦合,高内聚
	耦合:尽量的一个类能完成的事情一个类去完成,不要产生过多的关系。
			(Spring框架的IOC:控制反转)
	内聚:执行某件事情的能力。
5、继承的特点:
	1)在Java语言中,类和类之间只支持单继承,不支持多继承。
		在其他语言中是支持多继承的,
		语言格式:子类名   extends 父类名1,父类名2{}
	2)虽然不支持多继承,但是类与类之间是可以多层继承的。
6、继承的注意事项:
	1)子类继承父类,可以继承父类中所有的非私有的成员;
	本身私有的成员变量或成员方法只能在本类中访问,外界是不能访问的,但是间接通过公共的访问方法来访问。
	2)子类继承父类,不继承构造方法,但是可以通过一个关键字来访问父类的构造方法(super3)不要为了使用部分功能而去使用继承,(什么时候使用继承呢?)当A类如果是B类的一种,或者B类是A类的一种,可以使用继承。
继承体现的是“is  a”的关系。
7、继承中成员变量的关系:
	子类继承父类,如果子类中的成员变量名称和父类的成员变量名称不一致的情况:(分别访问即可)
	子类继承父类,如果子类中的成员变量名称和父类的成员变量名称一致的情况:(执行流程,遵循就近原则):
	1)先在子类的局部位置中找,如果找到了就使用它
	2)如果局部位置中没有,在子类的成员位置中找,如果找到了,就使用。
	3)如果找不到,就在父类的成员位置中找,如果找到了就使用
	4)如果还找不到,就报错了,说明访问了一个不存在的变量
8、继承中构造方法的关系:
	子类是不能继承父类的构造方法的,但是通过super()来访问父类的构造方法。
	在继承中,子类的所有构造方法都默认访问父类的无参构造方法,相当于子类的所有构造方法的第一句话:隐藏了super();
	
//为什么,创建子类对象的时候,先执行父类的无参构造方法?
因为可能要用到父类中的数据,所以先让父类中的数据进行初始化(构造方法),父类初始化完毕了,然后才执行子类的构造方法(子类数据初始化)--------分层初始化

super():如果在子类的构造方法显示给出了,必须写在第一句,否则可能出现父类初始化多次。(可以省略不写)
//问题:如果父类的无参构造方法没有提供,那么子类构造会出现什么情况?
	子类的所有构造方法默认父类的无参构造方法,如果父类没有提供,就报错了。
如何让解决上述问题:
	1)手动给出父类的无参构造方法(之前说在写一个标准类的时候,建议永远给出无参构造方法)
	2)现在手动不提供无参构造方法,如何解决?
	a、间接通过super(xx)来访问父类的有参构造初始化;
	b、通过this(),访问本类(子类)的无参构造方法,然后通过子类的无参构造方法里面super(xx)简介访问父类的有参构造方法。

//根据上面的一个小总结:
子类中的所有构造方法里面某一个构造方法必须让父类初始化,super(xx),this(),全都是在构造方法中的第一句。
9this关键字和super关键字区别:
应用:
	访问成员变量:
		this.变量名:访问本类的成员变量
		super.变量名:访问父类的成员变量
	访问成员方法:
		this.):访问本类的成员方法
		super.():访问父类的成员方法
	访问构造方法:
		this():表示访问本类的无参构造方法
		this(xxx):表示访问本类的有参构造方法

		super():表示访问父类的无参构造方法
		super(xxx):表示访问父类的有参构造方法
this:代表当前类对象的地址值引用
super:代表父类的空间标识(代表父类的对象空间地址值引用)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值