java继承的原理,怎么理解java继承
00-1010 1.什么是继承?2.继承的细节?2.1super关键字?2.2子类的构造方法?2.3超和这种继承的区别也是面向对象程序的一个特点。
00-1010所谓继承,就是提取类的共性,然后实现代码重用。
继承的关键字是extends。
现在用树的名称、来源、家族和属来定义一个类树。方法是将树的形态特征打印如下:
类别树{字符串名称;字符串源;弦属;除了方法rail之外,上述类的成员都是重复的,所以我们定义了一个类Plant来提取这些重复的成员,如下所示:
class Plant { String name字符串源;弦属;}然后让树继承植物:
class Plant { String name字符串源;弦属;} classTree扩展Plant {public void trait () {}}其中Tree是子类/派生类,Plant是父类/基类。
因此,无论树中的植物是否真的有成员,您都可以实例化一个对象来查看:
实例化的意义不仅在于实现代码重用,还在于实现多态性,这将在后面的文章中讨论。
00-1010了解了什么是继承之后,我们就会对继承的一些细节有深入的了解。
目录
super用于非静态方法。它的主要功能是访问子类中父类的成员。它可以作用于子类的成员变量、成员方法和构造方法。构造方法的使用在子类构造方法中解释。
子类的成员和父类的成员重名子类的成员和父类的成员重名会优先于子类的成员,很好的证明了这一点,如图:
现在,我们向Treed的trait添加以下语句:
public trail(){ system . out . println(super . name 最高可达30m );}结果如图所示:
如果是同名的方法,就会构成重载或者重写,重写是多态的。这只是简单介绍一下,就是父类和子类方法的返回值、方法名和参数都是一样的。如果重载,可以通过它的参数判断它的方法。如果改写的话,“超级。方法名”被添加到方法中以访问父类的方法。
00-1010因为子类继承了父类的成员,所以写子类的构造函数首先要做的就是调用父类的构造函数。这里还是用super。我们在Plant中编写了一个带有三个参数的构造函数:
public Plant(字符串名,字符串源,字符串属){ this.name=namethis.source=sourcethis.genu=genu}子类的构造如下(假设子类没有自己的成员变量):
public Tree(字符串名称,字符串来源,字符串属){ super(名称,来源,属);}有一点需要注意:super()只能出现在构造函数的第一行。
写构造函数的时候,之前说过:即使用户不写构造函数,编译器也会提供一个不带参数的构造函数。这里也是如此,只是super()将被添加到子类构造函数的第一行。
00-1010异同只能在类的非静态方法中使用,以访问非静态成员方法和成员变量。这是对当前对象的引用,super相当于引用子类中继承父类的那部分成员。只能用在构造方法中的第一行(所以super()和this()不能同时出现在构造方法中)。这是非静态成员方法的隐藏参数。如果super没有被继承,它将首先在这里,继承的其余部分包括后面使用的多态内容。
结束
这就是这篇关于Java继承从简单到深入的文章。更多相关Java继承内容,请搜索之前关于热门IT的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。