继承的最大好处就是为了实现代码的复用。那么,子类到底从父类得到的什么呢?

 

实例成员

 

父类的private成员不会被子类继承,子类不能访问。但是子类对象的确包含父类的私有成员。

父类的 包访问成员 继承为子类的包访问成员。就好像他们直接定义在子类中一样。

父类的 protected 成员继承为子类的protected 成员。就好像他们直接定义在子类中一样。

父类的 public 成员继承为子类的public 成员,就好像他们直接定义在子类中一样。

 

实例方法

 

继承到的实例方法在子类中可以直接被使用,还需重点理解是方法的重写和重载。

 

重写override

一个继承链中,父类的方法对于子类来说具有相同的语义,但是不同的细节操作,因此子类需要override父类的这个方法以满足自己的需求。

注意的点:

1、方法名,参数表一定和父类中的相同,返回类型相同,或者是子类。

1、访问权限一定不低于父类的实例方法

2、抛出的异常一定是父类方法抛出的异常相同,或者子类。

 

 

如果拿C++和java对比,那么java中的实例方法默认都是virtual的(java中没有virtual这个key word),因此在java中,子类可以直接重写父类方法的任何非final实例方法,但是在C++中,除非父类使用virtual标记一个方法为虚方法,子类才可以override这个方法。

对于重写的方法,javac是不能确定的具体要调用那个类的方法,而是产生特殊的字节码让jvm去动态决定什么方法。这个就是所谓的前期绑定和后期绑定的差异。

大学生就业培训,高中生培训,在职人员转行培训,企业团训

        		

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式