美文网首页
面向对象基础

面向对象基础

作者: shiyuzhe | 来源:发表于2018-09-03 21:37 被阅读58次

最近在找工作,发现java基础好多记不太清了,写篇文章记录下,也希望对你有帮助,有不对或不严谨的地方望不吝赐教。

面向对象的基本要素:封装,继承,多态

封装:隐藏事物内部实现细节,以提高安全性和简化编程。合理的定义边界来避免外部使用者接触到内部的细节。

继承:继承是代码复用的机制,子类会继承父类的特征与行为。但是一种紧耦合的实现,父类修改代码会改变子类的行为。

多态:多态是一种同一个行为可以具有多个不同表现形式或形态的能力。讲到多态可能会立即想到重写、重载和向上转型。重写是父子类中重名方法和参数的不同实现。重载是同名方法和返回值不同参数的实现。向上转型是说父类的引用指向子类对象。

抽象类与接口

抽象类是不能实例化的类,用abstract关键字修饰class,目的主要是代码重用。抽象类的抽象方法可以有0到N个。大多使用于抽取相关java类中的共同方法或成员变量,然后通过继承的方式来达到代码复用的目的。

接口是对行为的抽象,是抽象方法的集合,利用接口可以达到API定义和分类的目的。接口中任何变量都隐式声明为public static final,任何方法都隐式声明为public abstract。使用接口需要注意接口分离(Interface Segregation),毕竟接口每次改变都需要去修改对应的实现类。也要尽量保持接口小粒度,毕竟不是所有实现类会用到接口中所有的方法。

在使用中能用接口的地方就不要使用抽象类,毕竟java是单继承的。

static和final

使用抽象类和接口的时候难免会用到static和final来修饰。

final可以用来修饰类、方法和变量,分别有不同的意义。用来修饰class表示不可继承与扩展,用来修饰变量表示不可修改,用来修饰方法表示不可重写。final对象产生了某种程度上的不可不(immutable)效果,但它并不等同于immutable。final只能约束对象的引用不可被赋值,但是不会影响到对象的行为,例如用final修饰一个List,再给list添加元素是完全正常的。

static方便在没有创建对象的情况下来进行调用(方法/变量)。在类被加载的时候创建,不可调用非静态方法或成员变量,毕竟非静态方法或变量在创建对象的时候才会初始化。

文章部分内用引自极客时间上杨晓峰的《java核心技术36讲》,侵权即删。小伙伴们有时间可以去听听《java核心技术36讲》这个专栏。

相关文章

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • Java基础03面向对象

    Java 基础02Java编程基础 面向对象上 面向对象的概述 面向对象的概述:面向对象是一种符号人类思维习惯的编...

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • java基础回顾(2)

    面向对象:是基于面向过程的一种思想。 面向过程:以函数为基础,关注实现过程。 面向对象:以对象为基础,关注实现结果...

  • 面向对象

    title:面向对象tags: 基础,Java 面向对象 面向对象程序设计简介 面向对象的基本思想是使用类、对象、...

  • "类"的讲稿

    -----------------------面向对象基础----------------------------...

  • Java 工程师成神之路 | 2019正式版

    摘要:什么是面向对象 基础篇 01面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基...

  • 2、面向对象

    一、面向对象 定义:面向对象是基于面向过程的。 面向对象与面向过程比较:面向过程:面向过程是以函数为基础,完成各种...

  • 基础6-面向对象

    基础6-面向对象 ###06.01_面向对象(面向对象思想概述)(了解) * A:面向过程思想概述 *第一步 ...

  • 面向对象

    面向对象基础 目标 理解面向对象 类和对象 添加和获取对象属性 魔法方法 一. 理解面向对象 面向对象是一种抽象化...

网友评论

      本文标题:面向对象基础

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