美文网首页
面相对象的特征

面相对象的特征

作者: Spl_none | 来源:发表于2019-03-22 22:30 被阅读0次

封装

封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。

封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

优点:

减少耦合:可以独立地开发、测试、优化、使用、理解和修改

减轻维护的负担:可以更容易被程序员理解,并且在调试的时候可以不影响其他模块

有效地调节性能:可以通过剖析确定哪些模块影响了系统的性能

提高软件的可重用性

降低了构建大型系统的风险:即使整个系统不可用,但是这些独立的模块却有可能是可用的

继承

面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

子类继承父类的特征和行为。子类可以有父类的方法,属性(非private)。子类也可以对父类进行扩展,也可以重写父类的方法。缺点就是提高代码之间的耦合性。。

super关键字:通过super实现对父类成员的访问。用来引用当前对象的父类。通过super显示的调用父类的有参构造,无参构造可以隐式调用

this:用来引用当前对象,指向自己

final可以修饰类,方法,属性

修饰的类不能继承,修饰的方法不能重写,修饰的属性不能修改。

多态

多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

实现多态,有二种方式,覆盖,重载。

多态存在的3个条件:

1、继承关系

2、重写父类的方法

3、父类引用指向子类对象

以下三种方法不能实现多态:(方法不能被重写)

1、static方法,被static修饰的方法是属于类的,而不是实例的。

2、final,被final修饰的方法不能被重写

3、private和protected方法。private修饰的方法对子类不可见。而protected修饰的方法可以被子类见到,也可以重写,但是不能被外部引用。

理解多态(假如有一个父类Father和子类Children)

1、向上转型是自动的  Father  f  = new Children();不需要强转

2、向下转型需要强转  Children c = (Children)new Father()需要强转。让父类知道具体转成哪个子类

3、父类引用指向子类对象,子类重写了父类的方法,调用父类的方法,实际是调用子类重写父类的方法后的方法。Father f  = new Children();f.toString()实际是调用子类重写后的方法。

多态的分类:       

方法重载实现的是编译时的多态性,而方法重写实现的是运行时的多态性。

方法重载:当多个同名方法存在时,方法名不变,但参数类型和个数不同称为方法的重载,不以返回值来区分重载

方法重写:父类与子类之间的多态性,对父类的方法重写,若子类中的方法与父类中的方法具有相同的返回值,方法名和参数列表,则新方法会覆盖 旧方法。

参数列表相同,返回值相同,方法名相同,不能抛出新的检查异常则就是重写

参数列表的类型,个数不同,方法名相同,返回值可以相同也可以不同称为重载。可以抛出新的异常,可以有不同的访问修饰符

相关文章

  • 面相对象的特征

    封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,...

  • 有了基本类型为什么还要有包装类型呢?

    我们知道Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装...

  • 学习笔记-如何对接口鉴权这样一个功能开发做面相对象的分析

    如何进行面向对象的设计? 我们知道,面相对象的分析产出是详细的需求描述,那面相对象设计的产出就是类。在面相对象设计...

  • 面相

    面相,决定命运! 什么是面相? 面相是人的外在表象, 蕴含着人的命运信息。 面相是人的脸部特征, 体现着人的性情脾...

  • 暴力男的面相特征

    都说家和万事兴,家庭和睦是每个人都期待的。特别是杭州杀妻案发生后,很多本来就在闹矛盾的家庭更是人人自危。更有网友说...

  • Java基础学习——多态

    学习资料: Thinking in Java 第8掌 面相对象的程序语言三大基本特征: 多态从另一种角度将接口与实...

  • 面相对象

    创建类储存用户名 密码

  • Scala系列文章目录

    Scala(三)-①-函数式编程和异常 Scala(四)-①-面相对象初级 Scala(四)-②-面相对象中级-包...

  • Java理论知识 第四课

    这节课我们来学习面向对象 面向对象有四大特性:封装,继承,抽象,多态。 面相对象和面相过程的区别 面向对象就是抽取...

  • 写给新手的设计模式——开篇

    为什么需要面相对象 在历史进程中,我们由面相对象编程转向了面相对象编程,项目的规模也变得越来越大,其中有着必然的需...

网友评论

      本文标题:面相对象的特征

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