当年学C++时,自从学了继承,就有种不学继承不能说自己学过C++之感,这不仅仅是因为它大大地增强了程序的可扩展性,解放了程序员的半只手,还因为继承将我们之前在一片茫然、不知所云的状态中学到的各种知识衔接了起来,就比如说运算符的重载之类。
没想到学Java不过一个星期,4节课,就学到了这个在C++中占有很大分量的知识点。
下面先简要介绍下我个人关于C++&Java中继承的异同理解:
异:学至此,关于它们的不同之处,我暂且只发现了格式的差异:
C++中:class B:(virtual)public A;
(若是多继承,则在第一级继承时就应将共同基类设计成虚基类。)
Java: public 子类名 extends 父类名{
}
同:下面就偏重谈谈两种编程语言中继承的相同之处。
首先,当然是概念一样。在软件开发中,继承就是子类可以使用父类继承的属性和方法,通过扩展原有的类,声明新类来实现的,其格式已在上文说明;
其次,从概念上也可看出其作用。继承可使现有的代码具有可重用性和可扩展性。
即使是继承,也并非指子类可以调用父类中的任意属性和方法,那么能调用的有哪些呢?
1、子类和父类在同一个包下:
默认的、protected、public的属性和方法能被子类或者子类的对象调用;
2、子类和父类在不同的包下:
使用子类对象进行方法调用时只能调用到共有的属性和方法,在子类中能调用的属性和方法只能是public&protected属性和方法。