8.Java的继承

继承

一、继承的概念

1.继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的属性或新的方法,也可以使用父类的属性和方法。
2.继承技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。

二、继承的要点

1.可具有明确的类层次结构;
2.可以从父类中继承属性和方法,子类就不必去声明那些公共的属性和方法,除此之外子类还可添加自己的属性和方法来满足新需求;
3.父类的构造函数不能被子类继承;
4.父类的属性(字段)不能被子类重写;
5.子类可从父类中继承public、protected、默认(父子类同包时可以)访问修饰符定义的属性和方法,private访问修饰符定义的属性和方法不能继承;

三、继承的优点

1.代码的可重用性;
2.父类的属性和方法可用于子类;
3.设计应用程序变得更加灵活有弹性;
4.便于系统的可扩展性;

四、类定义的改进

在这里插入图片描述

五、super关键字的使用:

1.super()或super( [参数列表] ):调用父类的默认构造函数或带参数的构造函数。
2.super.方法( [参数列表] ):调用父类的方法。
继承案例:
在这里插入图片描述

六、继承关系中父类哪些不可被子类继承?

  1. 构造函数不可继承;
  2. 父类的属性可继承,不可重写(不可覆盖);
  3. 静态方法可继承,不可重写(不可覆盖);
  4. final方法可继承,不可重写;

七、父子类成员的初始化过程

过程:父类的静态初始化块—>子类的静态初始化—>父类的初始化块—>父类的构造—>子类的初始化块—>子类的构造

八、继承中的类型转换

继承中的类型转换:(向上转型也就是自动转型,向下转型也就是强制转型)
1.在继承树中向上转型(子类–>父类)总是安全的会自动发生。
2.在继承树中向下转型(强类型转换:父类–>子类)是不安全的。

Vehicles vehicle = new Car("奔驰","红色",4); // vehicle实际上引用的是一个Car对象
		//强制类型转换
		Car car = (Car)vehicle; //正确
		car.show();
		vehicle = new Bus("巴实","蓝色",40); 
		//Car car2 = (Car)vehicle; //这里的强制类型转换错误,因为vehicle实际引用的是一个Bus
		Bus bus = (Bus)vehicle;
		vehicle.show();

九、instanceof (实例测试运算符) 在类型转换中的作用:

1.Instanceof关键字用测试一个对象是否是某类的一个实例,或者实现了某个接口。测试结果是一个布尔值。
2.在强制类型转换之前通过instanceof运算符检查对象的真实类型,可以避免类型转换异常,从而提高代码健壮性;

十、什么时候使用继承

当满足“是一个(is a)”的关系时。子类应当可以替换父类并出现在父类能够出现的任何地方[替换原则 (the Liskov Substitution Principle LSP) ]也就说任何使用父类的地方子类都可以使用。

注:设计模式的6大原则:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值