1.protected权限修饰符的介绍
之前在说权限修饰符时候,没有细说protected,今天,我们就来聊聊protected
如图,protected修饰符中,“不同包的子类”是我们要理解的
我们在不同的包下创建一个Fu类和一个Zi类,然后在Zi类的同一个包中创建一个test类
Zi类继承Fu类,然后test不继承,仅用于测试
在test类里,创建Zi对象,发现无法调用Zi继承到的Fu类的show方法
这是因为,Fu类和test类属于无关类,show方法被protected修饰,最远范围也只能在不同包下的子类进行调用,在test里面调用超出了范围
所以,“不同包下的子类”就是指只能在Zi类范围里调用被protected修饰的成员,超出Zi类范围的地方都不行
如图,我们先在Zi范围里写了一个method,method再调用show就不会报错,然后如果想在其他地方调用show方法,就必须通过method方法来调用
我们会发现protected使用起来十分麻烦,而在现实编程,protected用的也很少,大部分使用的是public和private
2.java中继承的特点
支持单继承,而不支持多继承就是说一个类只能继承一个类,而不能同时继承多个类。
很好理解,一个人只能有一个亲爸,不可能有多个亲爸
java中不支持多继承的原因是防止程序逻辑混乱,假如支持多继承
两个父类中都有method方法,并且各自给出的逻辑都不同,这时,程序就无法判断该使用哪一个父类给出的method方法
支持多层继承就是说,A类继承B,B类继承C,可以理解为爷爷、爸爸、孙子
如图,B继承了A,而C又继承了B,所以A是爷爷,B是爸爸,C是孙子