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

向上转型


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值