浅谈-----继承机制

来源:互联网 发布:歌曲网络dj 编辑:程序博客网 时间:2024/06/05 09:45

Java中,继承只允许多层继承,不能多重继承。

即一个子类只能继承一个父类,但是一个子类可以有一个父类,一个父类还可以有一个父类。

图示如下:


父类又叫超类,子类又叫派生类

注意:子类是不能直接访问父类中的私有成员的,子类可以调用父类的非私有方法,但是不能直接调用父类中的私有成员。

子类对象的实例化过程,即子类对象在实例化之前必须首先调用父类的构造方法之后再调用子类自己的构造方法。

图示如下:


生活常识解释:现实生活中肯定先有父母之后才有孩子,孩子不可能凭空“蹦”出来。对于程序一样,之所以会调用父类中的构造方法,就是要用父类的构造方法为父类中的属性进行初始化,就是表示先有父类实例,然后才能产生子类实例。

提示:在子类实例化时会默认调用父类中的无参构造函数,如果希望调用有参构造函数,需要自行在子类中进行声明。

方法覆写

含义:是指子类定义了与父类中同名的方法,但是在方法覆写时必须考虑到权限,即被子类覆写的方法不能拥有比父类方法更加严格的权限。例如:

权限大小:private < default < public。如果父类中使用public定义的方法,则子类的访问权限必须是public,否则程序无法编译。

注意:方法覆写时从private变为default不算是方法覆写。

属性覆写

含义:是指在子类中声明了与父类同名的属性。

警示:此概念一般很少会有人去研究它,因为意义不大。

方法的重载与覆写区别:


this和super的区别:


警示:对于this和super本身都可以调用构造函数,而且调用的时候必须放在构造函数首行,因此这两个关键字肯定不能同时出现。

0 0