我是靠谱客的博主 伶俐黑裤,最近开发中收集的这篇文章主要介绍JAVA特性之继承,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

继承的概念


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

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

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

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

继承的优点


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

继承的缺点


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

继承的用法


class 子类 extends 父类 {}

 

继承的限制


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

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

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

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

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

protected


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

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());
}
}
Output:
This name is XianoMing

向上转型


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

最后

以上就是伶俐黑裤为你收集整理的JAVA特性之继承的全部内容,希望文章能够帮你解决JAVA特性之继承所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部