java [继承]-[接口]-[抽象类]-[多态]-[Object]

本文详细介绍了Java中的继承关系、抽象类、接口以及多态的概念和特点。讲解了继承中的this和super关键字的使用,以及多态的体现、前提、好处和弊端。同时,探讨了Object类的重要方法,如equals、hashCode和toString等。
摘要由CSDN通过智能技术生成

 

  1. 父类与子类关系继承关系
  2. 抽象类
  3. 接口
  4. 多态  
  5. 多态的体现
  6. 多态的前提
  7. 多态的好处
  8. 多态的弊端
  9.   多态中成员的特点
  10. Object 类

父类与子类关系:继承关系


 

  • 继承通过extends 关键字来声明: 子类 extends 父类

  •  继承的作用 :  继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系, 提高了软件的可重用性和可扩展性,提高了代码复用性.

  • 继承中this与super的使用


 子类中属性名跟父类属性名相同,则子类的属性隐藏了父类的属性 , 此时想引用父类变量则需要用关键字 super 来引用
 一个类中的局部变量名与该类的成员变量名相同,此时想引用成员变量需要关键字this来引用
 this 代表本类对象引用, super 代表父类对象引用


 this. 方法\属性 调用本类方法或访问本类属性

 super. 方法\属性  调用父类方法或访问父类属性


 this(); 调用本类构造函数;

super() 调用父类构造函数.

this()或super()调用构造函数必须作为构造函数的第一条语句

一个构造函数不能同时调用多个本来构造函数也不能同时调用多个父类构造函数

一个构造函数不能同时调用本类构造函数和父类构造函数,即构造函数中不能同时使用this和super来调用子父类构造函数

子类构函数默认都会隐式调用的父类构函数,即执行语句super();

 

每个类如果没有显式定义构造函数,则系统自动添加空参数空方法体的构造函数,当定义了含参的构造函数后系统不再添加

空参空方法体的构造函数,如果要使用空参数的构造方法则必须显式的定义,否则调用空参数的构造函数时会出错,

由于每个子类构造方法在没有通过super显式指明调用父类哪个构造函数时,系统自动调用super(),即调用父类空参数的

构造函数,所以如果父类因为定义了含参的构造函数后,不含参的构造函数就不存在了,要使用空参数构造函数必须显式

定义 ,如果没有显式定义那么子类构造函数必须用super(参数)

表明调用父类含参构造函数,当显式的调用了含参的父类构造函数之后 就不会再调用不含参的父类构造函数


  •  继承中方法的重写


    重写又叫覆盖 ,重写是相对于方法而言的,是指具有子父类的继承关系的方法的重新实现过程

    子类的属性名跟父类的同名时只是隐藏,在子类中直接访问该名的属性时相对于用this.属性名

    来访问,由于子类隐藏了父类的属性,所以this.属性名访问的是子类的属性,要访问被隐藏的父类

    属性可以通过super.属性名  来访问

    静态成员的"覆盖"也是隐藏,起不到覆盖的作用 , 要访问父类被隐藏的静态方法或属性通过父类名访问

    只有非静态方法才能称为覆盖

    覆盖发生在继承关系的子父类的非静态成员方法之间和实现关系的接口与实现类的方法之间


    覆盖的特点


   1)方法名称 参数列表 返回类型

    子类方法名称 参数列表 返回类型必须与父类方法的名称,参数列表和返回类型一致
    


   2)权限修饰

    子类方法不能缩小父类访问权限,子类重写父类必须保证子类权限大于等于父类权限
    为什么不能缩小访问权限?因为如果没权限限制将与多态机制发生冲突


   3)static修饰

    静态只能覆盖静态,父类的非静态方法不能被子类覆盖为静态方法


   4)final修饰

     父类被final修饰的方法都不能被子类覆盖 ,被final修饰的父类方法被子类继承后子类可以

     直接对该方法进行重载


   5)thr

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值