面向对象之——继承(extends)小结

继承 extends

继承在程序中主要解决的问题就是:共性抽取

继承关系中的特点

1.子类可以拥有父类的内容

2.子类可以拥有自己的专属内容

继承中成员变量的访问特点

在父子类的继承关系中,如果出现重名成员,访问方法有两种:

1.直接new出来的是哪个对象,就用哪个对象的成员

2.通过成员方法访问成员,在子类中如果找不到就到父类中去找

Super

如果想在子类的方法中访问到父类的成员变量

可以用super.变量名

对于三种重名,即子类中的变量名、父类中的变量名,以及子类方法中的变量名相同的时候

局部变量:直接写成员变量名

本类中的成员变量:this.变量名

父类中的成员变量:super.变量名

重写 Override

在继承关系中,方法的名称一样,参数列表也一样

重写和重载的区别

重写是在继承关系中的,方法的名称一样,参数列表也一样,重写也叫覆盖,覆写

重载时,方法的名称一样,参数列表一样

方法覆盖重写的特点,创建的对象是谁,就有谁的方法

注意事项

1.必须保证父类和子类之间的方法名称相同,参数列表也相同

@override:写在方法前,用来检测是不是有效的正确重写

子类的返回值必须小于等于父类方法返回值的范围

必须保证父类和子类之间的方法名称相同,参数列表也相同
java.lang.Object 类是所有类的公共最高父类 , java.lang.String 就是 Object 的子类
子类的返回值必须小于等于父类方法返回值的范围
子类方法的权限必须大于等于父类方法的权限
 从大到小  public  > protected>(default)>private
    default 不是关键字,而是什么都不写,留空
继承中构造方法的特点
  1. 继承关系中,子类构造方法当中默认含有一个super.方法名,所以一定会调用父类构造,后执行子类构造

  2. 可以通过super关键字在子类构造中调用父类重载构造(默认无参构造,重载以后可以进行有参构造)

  3. super的父类构造调用,必须是子类构造方法的第一个语句,不允许一个子类中多次调用super构造

  4. 子类必须调用父类构造方法,不写就默认赠送一个super():子饿了就用写的哪一个,super只能有一个,而且必须是第一个。

super关键字的用法
  1. 在子类的成员方法中访问父类的成员变量 ——>super.变量名
  2. 在子类的成员方法中访问父类的成员方法——>super.方法名
  3. 在子类的构造方法中访问父类的构造方法——>super();
this关键字
  1. this关键字用来访问本类内容,super用来访问父类内容

访问成员变量

本类:this.变量名

父类:super.变量名

  1. 在本类中访问本类的另外一个成员方法

​ this.方法名或者直接另一个成员方法的方法名

  1. 在本类的构造方法中,访问另个一个本类构造方法

例如。本类的无参构造调用本类的有参构造 this(参数类型 参数名)

注意

this(…)调用也必须是构造方法中的第一个语句,且是唯一 一个

super 和this两种调用不能同时存在,因为二者都必须是第一个

Java 继承的三个特点

Java语言是单继承的,一个类的直接父类只有一个

Java语言可以多级继承

一个父类可以有多个子类

抽象方法和抽象类的使用 abstract
抽象方法:加上abstract关键字,去掉大括号,直接分号结束
 抽象类:抽像方法所在的类,必须是抽象类才行,在class之前写上abstract即可。
 如何使用抽象类和抽象方法:
 1.不能直接创建new抽像对象
 2.必须用一个子类继承父类
 3.子类必须覆盖重写父类中的所有抽象方法
 4.覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值