Java的继承性详细分析
一、小编的说说 小编也算是一个新手,今年大一。没有什么开发经验,所以我要分享的是一些基础,会用最简单的例子说明重要的问题。我会以我平时的学习方法来写这个文章。建议从头慢慢看到尾 二、学习目标
-
什么是继承? 继承的作用是什么? 继承的优点有哪些? 继承的缺点又有哪些? 设计继承的原因,也就是要解决什么问题?
三、内容
-
(1)什么是继承? ①从子类父类之间的关系理解 子类继承父类可以使用父类中所有的属性和方法,在这里留一个问题,如果父类的属性或者方法是私有的,会不会继承?(这个留给你们自己动手试试,我实在是太懒了,提示一下:它会隐形继承,但是要一个中间的public的方法进行间接的访问。就想set()和get()那样) 子类继承父类后可以声明自己的属性和方法,所以严格上说继承是对类功能的扩充 ②继承的单词:extends ③一个子类只能继承一个父类,但是一个父类可以被多个子类继承 下面两张图证明了子类可以继承父类的属性和方法 父类: 子类: (2)从子类上理解 ①构造方法 子类的无参构造方法会默认调用父类的无参构造方法,也可以手动改变子类调用的构造方法,在子类构造方法的第一行写上 super() 表示调用父类构造方法,this() 表示调用本类的构造方法。当然在子类无参构造方法中会默认super(),如果是有参的就要往super()里面丢参数,这里我就不演示了。 ②覆写(重写) 这个是重点的概念,覆写就是子类继承父类的时候,子类的方法名字、参数类型和参数的个数都要与父类的相同、并且子类方法的访问权限不能比父类的严格才能达到覆写的要求。下面是代码的图片,此时子类覆写了父类的info()方法,然后e对象调用的是覆写后的方法而不是父类的info方法 ③属性的覆盖 属性的覆盖只需要子类的属性名字与父类属性的名字一样就可以达到要求,对访问权限(private、public…)和数据类型没有要求。我们在父类中的age属性是String类型、访问权限是public,在子类中覆盖之后是int 类型、private访问权限。然后覆盖之后e对象是直接调用覆盖后的属性而不是父类中的属性
通过上面的讲解相信大家对Java中的继承性已经有一定的了解。接下来我总结一下我讲的知识点
-
什么是继承?
- 从子类和父类之间的关系理解(重点)
- 在子类上理解(重点)
那么我来回答一下上面的学习目标: 1、继承性的作用 可以实现类结构的重复利用,可以对类功能进行扩充。 2、优点 表面上就是减少重复的代码,实际上也是,这个特别舒服,省了复制粘贴 3、缺点 存在单继承局限性,这个就是说一个子类只能继承一个父类。还有一个缺点就是,父类不能强制性要求子类必须覆写父类中的一些方法(这个敲多代码之后就会慢慢理解) 4、设计继承的原因 就是实现类结构的重复利用,提高代码的重用性