Java 基础(二)面向对象

请说说面向对象的特征?封装、继承、多态分别说一下,以及它们的好处?

  • 面向对象的三大特征:封装、继承和多态。
  • 封装

        属性私有,方法(操作属性)公开,外部对象仅能通过访问方法操作属性。

        Java 提供了四种修饰符(`private`,`default`,`protected`,`public`)赋予外部对象不同的访问权限。

图 1 

  • 继承

        世间万物都可以看做是一个对象。同一类型的对象之间一般都会具有一定数量的共性(父类)和一些各自的特性(子类扩展)。 

        1. 子类拥有父类的所有属性和所有方法;  // 共性,对于父类中的私有属性和私有方法,子类只具备拥有权,而不具备访问权。

        2. 子类可以拥有自己的方法和属性; // 特性,子类扩展 

        3. 子类可以用自己的方式实现父类的方法。  // 方法重写

  • 多态

        多态:父类的引用指向子类的实例。

        1. 对象类型和引用类型之间具有继承(类)/ 实现(接口)的关系;  // 关键字:继承、实现(父子类关系成立)

        2. 引用类型变量发出的方法调用的到底是哪个类中的方法,必须在程序运行期间才能确定 {

举个例子来说,假设有一个父类 Animal 和一个子类 Dog 继承自 Animal 。我们声明一个 Animal 类型的引用变量 a,并将其指向一个 Dog 对象。当我们通过变量 a 调用一个方法时,编译器无法确定方法执行的是 Animal 类中的方法还是 Dog 类中的方法,因为 a 可以指向任何 Animal 类的子类对象。只有在程序运行时,根据 a 所指向的具体对象是 Dog,才会调用 Dog 类中对应的方法。

        };

        3. 多态不能调用 “只在子类存在但在父类不存在” 的方法;

        4. 如果子类重写了父类的方法,真正执行的是子类覆盖的方法;如果子类没有重写父类的方法,执行的是父类的方法。

  • 转型

        1. 向上转型:多态;

        2. 向下转型:强制转换 {

解决 [ 多态不能调用 “只在子类存在但在父类不存在” 的方法  // 编译错误 ] 这一问题 

        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值