我是靠谱客的博主 伶俐黑裤,这篇文章主要介绍JAVA特性之继承,现在分享给大家,希望可以做个参考。

继承的概念


 是指从已有的类中派生出新的类。新的类不仅可以拥有父类的属性、方法,还可以定义自己独有的属性或者方法。
 继承所描述的是“is-a”的关系,如果有两个对象A和B,若可以描述为“A是B”,则可以表示为A继承B。其中B是被继承者,称之为父类或者超类,A是继承者称之为子类或者派生类。

子类的特点
  1. 子类会继承父类所有非private的属性和方法。
  2. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

    子类实际上是将父类定义的更加具体化的一种手段。父类表示的范围大,而子类表示的范围小。

  3. 子类可以用自己的方式实现父类的方法。(重写)
     

继承的优点


  1. 复用之前的代码,提高开发效率。
  2. 展现对象之间的关系。
     

继承的缺点


  1. 父类改变,子类就必须跟着改变。
  2. 继承破坏了封装,对于父类而言,它的实现细节对于子类来说都是透明的。
  3. 继承是一种强耦合关系。
     

继承的用法


复制代码
1
2
class 子类 extends 父类 {}

 

继承的限制


  1. 存在单继承局限,一个子类只能够继承一个父类。

    Java之中只允许多层继承,不允许多重继承,Java存在单继承局限

  2. 子类会继承父类所有非private的属性和方法;而对于父类的私有属性和方法,会在父类定义过setter()、getter()方法后进行间接访问操作。

    构造器只能被调用,不能被继承。

  3. 在继承关系中,如果要实例化子类对象,会默认先调用父类构造方法,为父类之中的属性初始化,之后再调用子类构造方法,为子类之中的属性初始化。默认情况下,子类会去找父类中的无参构造方法,如果此时父类没有无参构造方法,则必须在子类构造方法代码的首行,通过super() 调用指定了参数的父类构造方法。只要父类中含有无参构造方法,子类就无需在构造方法首行显示super调用。
     

protected


 将类的属性设为private,并通过protected修饰的方法来控制类的继承者的访问权限。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Person { private String name; protected String getName() { return name; } protected void setName(String name) { this.name = name; } public String toString(){ return "This name is " + name; } } public class Husband extends Person{ public String toString(){ setName("XianoMing"); //调用父类的setName() return super.toString(); //调用父类的toString() } public static void main(String[] args) { Husband husband = new Husband(); System.out.println(husband.toString()); } }
复制代码
1
2
3
Output: This name is XianoMing

向上转型


 将子类转换成父类,在继承关系上是向上移动的,所以一般称之为向上转型。由于向上转型是从专用类型向通用类型转换,所以它总是安全的,但可能会造成子类的属性和方法的丢失(多态的理解)。

最后

以上就是伶俐黑裤最近收集整理的关于JAVA特性之继承的全部内容,更多相关JAVA特性之继承内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部