美文网首页
面向对象三大特性

面向对象三大特性

作者: spiderM | 来源:发表于2019-01-09 15:00 被阅读0次

三大特性:继承 封装 多态

继承

Java中的继承只能单继承,但是可以通过内部类继承其他类来实现多继承。

封装

封装主要是因为Java有访问权限的控制。public > protected > package = default > private。封装可以保护类中的信息,只提供想要被外界访问的信息。

多态

多态一般可以分为两种,一个是重写overwrite,一个是重载override。

  • 重写:从jvm实现的角度来看,重写又叫运行时多态,编译时看不出子类调用的是哪个方法,但是运行时操作数栈会先根据子类的引用去子类的类信息中查找方法,找不到的话再到父类的类信息中查找方法是由于继承关系中的子类有一个和父类同名同参数的方法,会覆盖掉父类的方法。
  • 重载:重载是编译时多态,在编译器就可以确定传入的参数组合,决定调用哪一个具体方法。是在同一个类中方法名相同,传入多个参数组合。
    注意:同名方法如果参数相同,即使返回值不同也是不能同时存在的,编译会出错。

向上转型:子类对象转为父类,父类可以是接口。公式:Father f = new Son();Father是父类或接口,son是子类。向上转型后父类的引用所指向的属性是父类的属性,如果子类重写了父类的方法,那么父类的引用指向的是子类的方法,这个叫动态绑定

  • 注1:向上转型后父类引用不能调用子类独有的方法,就是父类没有但是子类的方法。
  • 注2:父类引用非要调用子类的属性,不过不向下转型就就需要给需要的属性写getter()方法。

向下转型:父类对象转为子类。公式:Son s = (Son)f。 向下转型需要考虑安全性,如果父类引用的对象是父类本身,那么在向下转型的过程中是不安全的,编译不会出错,但是运行时会出现java.lang.ClassCastException错误。它可以使用instanceof来避免出错此类错误即能否向下转型,只有先经过向上转型的对象才能继续向下转型。

Human h = new Male();// 向上转型
Human h1 = new Human();
//h.speak();此时需要向下转型,否则不能调用speak方法。
 Male m = (Male) h;
 m.speak();
 /**Male m1 = (Male)h1;
 m1.speak(); 

向上转型的作用:减少重复代码,父类为参数,调有时用子类作为参数,就是利用了向上转型。这样使代码变得简洁。体现了JAVA的抽象编程思想。

相关文章

  • 面向对象编程(二)

    面向对象编程(二) -------面向对象的基本特性 1、面向对象的基本特性 面向对象的编程是把现实客观存在的...

  • 面向对象

    面向对象:OOP 面向对象三大特性

  • 面向对象语言基础

    面向对象语言的特性 面向对象的语言的特性:封装、继承、多态。 面向对象语言的设计原则 面向对象的语言在进行程序设计...

  • 面向对象三大特性(一):封装

    面向对象有三大特性:封装、继承和多态。注意,是面向对象的三大特性而不是Java的三大特性,Java只是面向对象语言...

  • Class 的封装及调用-Python教学【StudyQuant

    前言:面向对象的三大特性是指:封装、继承和多态。论Class 的封装及调用 面向对象三大特性 面向对象的三大特性是...

  • 理解面向对象

    理解面向对象 阅读知乎大牛对面向对象的讨论后,写下自己的总结和理解。知乎 面向对象的原本特性 面向对象原本的特性(...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象特性

    面向对象主要由三大特性: 封装继承多态 1.封装:封装的思想保证了类内部数据结构的完整性,使用户无法轻易直接操作类...

  • 面向对象特性

    1、类(Class)类是ts的核心,使用ts开发时,大部分代码是写在类里面的。类的定义、构造函数、类的继承;类的定...

  • 面向对象三大基本特性,五大基本原则

    面向对象三大基本特性,五大基本原则 透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础. 三大特性是:封...

网友评论

      本文标题:面向对象三大特性

      本文链接:https://www.haomeiwen.com/subject/hofgrqtx.html