Java-继承

本文介绍了Java中的继承概念,包括代码复用、类的is-a关系、单继承与多层继承特性。子类继承父类的所有成员变量和方法,但不能继承构造器,且必须在构造器中调用父类构造器。重写方法需保持方法名、参数列表和权限修饰符的一致性。此外,讨论了Object类的toString方法的重写建议,以及this和super关键字的作用和使用场景。
摘要由CSDN通过智能技术生成

一,继承

1,继承的意义

·代码的复用

·表现两个事物之间的 is - a的关系。例如:Student is a Person.学生是人的一个子类

·实现代码的扩展,事物的分类扩展,事物的分类更具体

2,集成的语法

【修饰符】 class 子类 exdents 父类{

}

子类:又称派生类。

父类:又称超类,基类

3,继承的特点和要求

·Java中类与类之间,只支持单继承。

·java中类支持多层继承

·java、的根父类是java.lang.Object类,所有引用数据类型的根父类都是他。如果一个类没有明确的说明他的父类是谁,那么他的父类就默认为Object

·子类会继承父类的所有的成员变量,成员方法。但是如果父类中把成员方法私有化了,那么子类中是无法直接使用的。

4,子类不能继承父类的构造器,但是子类构造器的首行必须一定会调用父类的构造器

·子类的构造器默认是会调用父类的无参构造。如果写 super();也是表示调用父类的无参构造。

 ·子类的构造器”首行“,可以通过super(实参列表); 语句 明确 调用父类的有参构造。

如果父类没有有午餐构造,子类的首行有没有写 super(实参列表);语句,那么代码就报错了。

5.方法的重写

方法的重写(Override):当子类继承了父类的某个方法时,子类中关于该方法的功能实现有别于父类该方法的实现,那么子类就可以对该方法进行重写。

重写的要求:

·方法名必须相同

·(形参列表):必须完全相同(类型,个数,顺序三者完全相同,和参数名无关)

·返回值类型

        void 或基本数据类型必须完全相同

·引用数据类型<=

  • 如果父类被重写的方法返回值类型是Object,那么子类重写该方法时返回值类型可以是Object或Object的子类(String等)。

  • 如果父类被重写的方法返回值类型是Animal,那么子类重写该方法时返回值类型可以是Animal或Animal的子类(Dog,Cat等)

        

  • 权限修饰符:>=

    • 如果父类被重写的方法权限修饰符是public,那么子类重写该方法时只能是public

    • 如果父类被重写的方法权限修饰符是protected,那么子类重写该方法时可以是public或protected

    • 如果父类被重写的方法权限修饰符是缺省,那么子类重写该方法时可以是缺省、protected、public(不能跨包重写,因为缺省的跨包看不见)

    • 如果父类被重写的方法权限修饰符是private,那么子类不能重写它,因为private在子类中不可见。

6.public String toString()方法

这个方法是Object类提供的,所有类都有这个方法。

这个方法默认返回 当前对象所属的类型 @ 对象的hashCode值的十六进制形式,官方文档中,明确说明,建议子类应该重写它。

如何重写?

A:Ctrl + O快捷键

B:Alt + Insert快捷键

(3)当我们用System.out.println() 或 System.out.print()输出一个对象时,自动会调用这个对象的toString()

或者,当我们用对象与String字符串拼接时,也会自动调用这个对象的toString()

四,关键字 this、super

this 的意思

this:代表当前的对象。

        构造器:代表正在new的那个对象

        非静态成员方法:代表正在调用这个方法的对象

this 关键字的用法

this.成员变量

1.当构造前中,非静态成员方法中,出现了局部变量于非静态成员变量重名了,

就需要在成员变量(属性)前面加this,否则就会遵循就近原则,表示为局部变量了。

2.this.成员方法()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值