面向对象(继承)

目录

面向对象与面向过程

继承

        继承的特点

        继承的语法

        不可以被继承

        访问权限修饰符

       方法重写

          重写原理

        @Override

        重写的注意事项

        super关键字

类与类之间的关系

fifinal关键字的使用

        定义        

        可以修饰的内容     

          空白fifinal

Object类的使用

       定义


面向对象与面向过程

面向过程,面向对象都是一种看待问题、解决问题的思维方式。
        面向过程
                ---强调的是功能行为 --- 关注的是解决问题需要哪些步骤
                ---着眼点在于问题是怎样一步步的解决的,然后亲力亲为的解决这个问题。
        面向对象
                ---强调的是完成功能的对象 --- 关注的是解决问题需要哪些对象
                ---着眼点在于找到一个能够帮助解决问题的实体,然后委托这个实体解决问题。
面向对象是相对面向过程而言
面向对象是基于面向过程的。

继承

        继承的特点

  •         产生继承关系后, 子类可以使用父类中的属性和方法, 也可以定义子类独有的属性和方 法
  • Java是单继承, 一个类有且只能有一个直接的父类,可以有若干个间接的父类,一个父类可以 0个或者多个子类,子类之间互不影响
  • 使用继承,可以简化代码,提高代码的复用性,提高代码的拓展性,增加代码的健壮性,最重要 的使类与类之间产生了继承的关系,是多态的前提

        继承的语法

  • 继承, 需要使用关键字 extends。 在定义类的时候, 使用 子类 extends 父类 的方式描 述继承。
  • Object:java继承体系中所有类的父类,Object类没有父类.
//Phone类没有显示的父类,默认父类是Object类 
class Phone {} 
//Iphone类继承自Phone类 
class Iphone extends Phone { 
}

        不可以被继承

  • 构造方法
    1. 构造方法是为了创建当前类的对象的, 不可以继承给子类。
  • 私有成员
    1.   私有成员只能在当前的类中使用, 不可以继承给子类。
    2. 注意:父类的私有成员,在子类中可见不可用
  • 跨包子类
    1. 默认权限的属性、方法, 不可以继承给跨包的子类。

        访问权限修饰符

                 访问权限修饰符, 就是修饰类、属性的访问级别。

       方法重写

          重写原理

  • 当子类希望实现父类方法功能之外的一些功能时,如何处理?
           分析:
方法 :callPhone
父类 :Phone 打电话
子类 :Iphone 打电话 + 唱歌
子类 :Huawei 打电话 + 视频
对于子类 Iphone: 打电话时可以直接调用父类的 callPhone 方法 , 但是唱歌功能无法实现 .
            解决:
子类可以继承到父类中的属性和方法, 但是有些方法, 子类的实现与父类的方法可能实现的
不同。 当父类提供的方法已经不能满足子类的需求时, 子类中可以定义与父类相同的方法。
  • 当出现同名方法后,方法如何调用?、
这时子类方法完成对父类方法的覆盖, 又叫重写( Override )。

        @Override

一个注解, 进行重写前的校验。 校验这个方法是否是一个重写的方法。 如果不是重写的方
法, 会直接报错。

        重写的注意事项

  • 方法名字必须和父类方法名字相同
  • 参数列表必须和父类一致
  • 方法的访问权限需要大于等于父类方法的访问权限
  • 方法的返回值类型需要小于等于父类方法的返回值类型

        super关键字

  • 有时候,子类重写父类方法的时候,并不是要对父类的实现全盘推翻,而是对父类方法进行拓 展。
  • 父类方法中的实现仍然需要, 但是还需要在父类方法的基础上进行拓展的实现, 此时就 需要使用super关键字调用父类的方法。
  • thissuper的对比
this: 是一种引用类型 , 代表当前对象 , 保存的是当前对象的地址 super: 代表的是当前对象的
父类 , 可以调用父类的成员 . 但是他不是引用数据类型 .

类与类之间的关系

1. 继承 --- 描述 : 谁是谁 例如 : 人是动物
2. 组合 --- 描述 : 谁属于谁 例如 : 狗属于人 / 人拥有狗
3. 传参

fifinal关键字的使用

        定义        

                是一个关键字,最后的,最终的.fifinal修饰的内容是不能再被改变的

        可以修饰的内容     

  • 1.:fifinal修饰的类不能有子类
  • 2.成员变量:变量是一个终值,不能再被改变.所以在定义时必须先手动给一个值.
  • 3.局部变量:fifinal修饰的局部变量是一个终值,不能再被改变
  • 4.方法:fifinal修饰的方法不允许重写

          空白fifinal

  • 描述:修饰成员变量的一种形式
  • 如果是自定义的类可以在定义时先不给值,但是必须在构造方法中给值,即必须保证属性是被初始化了的.这种情况叫空白fifinal.
  • 优点:空白fifinalfifinal的使用上提供了更大的灵活性,因为一个类中的fifinal域可以做到根据 对象而有所不同,却又保持其恒定不变的特性.

Object类的使用

       定义

Object : java 继承体系中所有类的父类 ,Object 类没有父类 .
作为所有类的父类 , 它里面有 11 个方法 , 相当于所有子类都默认有这些方法 , 所以都很重要 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值