Java的继承、多态、接口、包、内部类和常用类

一、继承(extends)

1.继承的概

什么是继承:
	将多个事物(类)的共性内容抽取到一个独立的事物(类)中这个事物(类)和其他事物(其他类)之间产生的一种关系叫做"继承"
格式:
	class 父类名(超类){
			共性内容:属性私有化
			对外提供公共的访问方法
	}
	class 子类名 extends 父类名{
	
	}
好处:
	1.提高了代码的复用性
	2.提高了代码的维护性
	3类与类产生的继承关系是多态的前提。
特点:
	1.类与类之间的关系,只支持"单继承"
	2.不支持多继承,但可以"多层继承"
弊端:
	继承的关系:是存在局限性,不要为了使用部分功能去使用继承
	打破了封装性
注意事项:
	1.子类只能继承父类所有的非私有的成员(成员方法和成员变量)
	2.子类不能继承父类的构造方法,但可以通过super去访问父类中的构造方法
	3.如果A类属于B类,或者B类属于A类时,这个时候使用继承

2.继承的成员变量的访问问题

1)子类继承父类,如果子类和父类的成员变量名称不一致分别访问即可
2)子类继承父类,如果和父类的成员变量名称一致,访问采用"就近原则"
	就近原则机制:
			1)首先先在子类的局部位置(成员方法)找,如果有,就使用
			2)如果子类的局部位置没有,那么就在子类的成员位置中找,有就使用
			3)如果子类的成员位置也没有,那么就在父类的成员位置中找,有就使用
			4)如果父类也没有,继续往他的父类上找,最终顶层父类中都没有,那么报错(找不到这个变量!)

3.继承的构造方法的访问问题:super来访问

1)子类继承父类,子类的所有构造方法的默认第一句话都是super();(可以省略不写)访问父类的无参构造方法
2)如果父类中没有输出无参构造的方法,那么会出现什么情况?如何解决?
继承关系中:构造方法的访问(分层初始化:先父类,再是子类)

4.继承的成员方法的访问问题

子类继承父类, 如果子类和父类的成员方法名称不一致,分别调用即可
如果子类出现了父类一摸一样的方法,这个时候,子类会将父类的方法进行覆盖(方法重写)
	方法重写Override (方法覆盖/方法复写):
		继承中使用的,子类出现了父类一模一样的方法,目的就是为了将父类的进行重写(覆盖/复写)
	注意事项:
		重写的时候必须要保证它的访问权限足够大!

5.final关键字

final(静态修饰符):最终的,无法更改的
	在有的时候,子类继承父类, 在父类不想让子类将父类的方法重写,为了保证数据的安全性!
	特点:
		1)可以修饰类,该类不能被继承
		2)修饰成员变量,此时这个变量是常量!(自定义常量)
		3)final也可以修饰符成员方法,此时这个方法不能被重写!
		4)被final修饰的这个成员变量只能被赋值一次!
	实际开发中:static和final是一起使用的
final修饰基本数据类型和修饰引用类型区别:
    被final修饰的基本数据类型,它的数据值不能再改变了(不能在赋值了)
	被final修饰的引用数据类型,它的空间地址值不能在改变了(不能重新在new了)

6.方法重写Override和方法重载Overload的区别

方法重载Overload:
	定义方法的时候,多个方法的方法名相同,参数列表不同,与返回值无关(目的:提高了方法扩展性)
                参数列表不同:
                    1)参数个数
                    2)参数类型
                    3)先后类型顺序
方法重写Override:
    在继承中,子类出现了和父类一模一样的方法声明,子类会将父类的方法覆盖,使用子类的一些自己功能;重写的时候,要保证访问权限足够大!
    重写的目的:为了沿用父类功能,然后还可以自己的优化的功能!

7.this和super的区别</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值