重新认识Java(8_1)————继承

继承:

描述person这类事物,描述student这类事物,发现两类事物中有相同的属性和行为,导致代码的复用性很差,想要提高代码的复用性,因此模拟现实生活,出现了---继承。

 

从一个类中派生出新类的过程----继承。

原有的类称之为:父类、超类、基类

新类称之为:子类,派生类

子类继承了父类,相当于子类拥有了父类中的成员(私有、构造器除外)

子类 extends 父类

注意:

不能为了提高代码的复用性而乱使用继承,必须有所属关系才可以使用继承。

特点:

单继承:一个子类只能有一个父类,一个父类可以有多个子类。

在java中允许多重继承,即 A extends B , B extends C ,C extends D....,Object

此时我们所写的类或者所使用的类都是Object的直接子类或者是间接子类。

(父类中私有的成员,在官方文档中写的是不被继承,但是通过代码反推却可以发现这个父类的私有成员却存在。)

(即为私有成员存在,但是不能被直接访问,只能通过父类的公共的get,set方法进行访问)

继承出现后,类中成员的变化:

  1. 成员变量

如果是非私有的,被子类继承,创建子类对象,可以直接访问。

如果是私有的,子类不能直接访问,通过set和get方法,间接访问。

如果父类和子类中出现相同的变量,建立子类对象,访问的是子类中的,如果想要         访问父类中的该变量,使用super关键字(这种显现实际开发不会出现)。

super:与this用法基本相同

  1. 代表的是父类引用,即可以访问父类中成员
  2. 调用父类的构造器

2.成员方法

如果父类和子类中出现了相同的方法定义,但是方法体内容不同,建立子类对象,调用该方法,运行的结果为子类内容,这种现象称之为方法重写或者覆盖。

方法覆盖(override):

出现了继承,子类重写了父类中的方法

方法重载(overlode):

在一个类中,同名方法,参数列表不同,与返回值类型无关。

        什么时候方法重写?

父类方法功能不满足于子类的需求。

方法重写的前提条件:

  1. 返回值类型、方法名、参数列表要求与父类方法一模一样

在jdk5.0 后,允许子类方法返回值类型是父类方法返回值类型的子类

  1. 访问控制修饰符 大于等于 父类方法
  2. 是否是静态方法也要与父类保持一致   

 

@Override注解,可以用来验证是否是重写方法。

4.构造方法

1.在子类构造方法的第一行有一条隐藏的super()语句,目的是调用父类的无参数构造方法;如果父类中没有无参数构造方法,那么子类必须手动显示写出super(参数列表),调用父类的有参数构造方法。

2.构造方法的第一行要么是this(参数列表),要么是super(参数列表)

 无论使用this(参数列表)调用本类的重载构造方法,至少要保证有一个方法的第一行是super(参数列表语句),目的就是一定要让父类的构造方法执行一次。

描述事物类:

  1. 私有化属性
  2. Set与get方法
  3. 无参数和有参数构造器
  4. 添加用于返回对象信息的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值