面向对象特征

面向对象三大特征: 继承, 封装, 多态

继承

继承:

  • 子类可以从父类继承属性和方法
  • 对外公开某些属性和方法

要点(eclipse中Ctrl+T查看继承结构)

1.父类也称超类, 基类, 派生类

2.Java中只有单继承, 没有C++那种多继承

3.接口有多继承

4.子类继承父类, 可以得到父类的全部属性和方法(除了构造方法), 但不一定可以直接访问(例如父类中的私有属性和方法)

5.如果定义一个类时, 没有调用extends, 则它的父类是java.lang.object

Object类是所有Java类的根基类, 也就意味着所有的Java对象都有object类的属性和方法

关键字super

super是直接父类对象的引用, 可以通过super来访问父类中被子类覆盖的方法或属性

属性/方法查找顺序(如变量h)

1.查找当前类中有没有属性h

2.依次上溯每个类的父类, 查看每个父类中有没有j, 直到object

3.如果没有找到, 则出现编译错误

4.上述步骤中, 只要找到变量h, 则这个过程终止

构造方法调用顺序

构造方法第一句总是super(...)来调用父类对应的构造方法. 所以流程是先向上追溯到object, 然后再依次向下执行类的初始化和构造方法, 直到当前子类为止, 同静态初始化块一样, 先把静态初始化全部执行(父类直至object和子类)完后, 再执行构造方法

封装

封装作用

  • 对外隐藏某些属性和方法
  • 对外公开某些属性和方法
修饰符 同一个类 同一个包 不同包的子类 所有类
private *
defualt * *
proteced * * *
public * * * *

成员(成员变量或成员方法)访问权限共四种:

private

  只能被这个类本身访问

default

  可以被这个类本身访问

  可以被同一个包中的类访问

protected

  可以被这个类分数访问

  可以被同一个包中的所有其他类访问

  被它的子类(同一个包以及不同包的子类)访问

public

  可以被该项目的所有包中的所有类访问

类的访问权限共两种:

public

  可以被同一项目中所有的类访问(必须与文件名同名)

default

  可以被同一个包的类访问

封装要点:

类的属性的处理

  一般使用private访问权限

  提供相应的get/set方法来访问相关属性, 这些方法通常用public修饰, 以提供对属性的赋值与读取操作(boolean变量的get方法是以is开头)

一些只用于本类的辅助性方法可以用private修饰

希望其他类调用的方法用public修饰

多态

多态: 指同一个方法调用, 由于对象的不同, 可能会有不同的行为, 适应多种变化, 使得代码变得更加通用

属性没有多态

引用变量的两种类型:

  • 编译时类型(模糊一点, 一般是一个父类)

      由声明时类型决定
  • 运行时类型(运行时, 具体是哪个子类就是哪个子类)

      由实际对应的对象类型决定

多态要点:

1.多态是方法的多态, 不是属性的多态(多态与属性无关)

2.多态的存在要有3个必要条件: 继承, 方法重写, 父类引用指向子类对象

3.父类引用指向子类对象后, 用该父类引用调用子类重写的方法, 此时实现多态

4.多态不能调用声明类型中没有的方法

Java_面向对象三大特征的更多相关文章

  1. Java中面向对象三大特征

    也就是说在这里"人"是多态的, 在不同的形态时,特征行为是不一样的, 这里的"人", 同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别是&q ...

  2. OOP面向对象 三大特征 继承封装多态

    OOP面向对象 ----三大特征 继承封装多态 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构 ...

  3. Java学习:面向对象三大特征:封装、继承、多态之封装性

    面向对象三大特征:封装.继承.多态. 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 封装就是将一些细节信息隐藏起来,对于外界不可见. 问题描述:定义Person的年 ...

  4. Java学习:面向对象三大特征:封装性、继承性、多态性之多态性。

    面向对象三大特征:封装性.继承性.多态性之多态性. extends继承或者implemens实现,是多态性的前提. 例如:小菜是一个学生,但同时也是一个人.小菜是一个对象,这个对象既有学生形态,也有人 ...

  5. 面向对象三大特征之封装与static——(Java学习笔记四)

    面向对象     编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一 ...

  6. JavaSE基础知识(5)—面向对象(5.4面向对象三大特征:封装、继承、多态)

    面向对象编程具有三大特征: 封装 继承 多态 一.封装 1.好处 狭义的封装:也就是属性的封装,避免了任意赋值的危险,提高了数据的安全性! ①隐藏一个类中不需要对外提供的实现细节 ②使用者只能通过实现 ...

  7. 封装继承多态-java面向对象三大特征

    第七章  封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...

  8. 【JavaSE】面向对象三大特征——封装、继承、多态

    前言:本文主要介绍思想 封装 封装这一概念并不仅存在与面向对象中,甚至说封装这一概念不仅限于编程中,其实生活中的封装无处不在.比如 需求:你到银行取钱 参数:你只需要提供银行卡和密码 返回值:柜员会将 ...

  9. Java面向对象三大特征

    封装: 首先,属性可用来描述同一类事物的特征, 行为可描述一类事物可做的操作,封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.比如人这个东东,可用下面的方式封装:人{ 年龄 ...

随机推荐

  1. Java date format 时间格式化

      import java.util.Date; import java.text.DateFormat; /** * 格式化时间类 * DateFormat.FULL = 0 * DateForma ...

  2. 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现

    073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...

  3. 《凤凰项目:一个IT运维的传奇故事》读书笔记

  4. 【从零开始撸一个App】Kotlin

    工欲善其事必先利其器.像我们从零开始撸一个App的话,选择最合适的语言是首要任务.如果你跟我一样对Java蹒跚的步态和僵硬的语法颇感无奈,那么Kotlin在很大程度上不会令你失望.虽然为了符合JVM规 ...

  5. Python装饰器实现带参数和不带参数

    1 def log(text=None): 2 3 if isinstance(text, str): 4 def decorator(func): 5 @functools.wraps(func) ...

  6. RHSA-2018:1200-重要: patch 安全更新(代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  7. DDOS、CC、sql注入,跨站攻击防御方法

    web安全常见攻击解读--DDos.cc.sql注入.xss.CSRF 一,DDos https://www.cnblogs.com/sochishun/p/7081739.html#4111858 ...

  8. Springboot+Redis(发布订阅模式)跨多服务器实战

    一:redis中发布订阅功能(http://www.redis.cn/commands.html#pubsub) PSUBSCRIBE pattern [pattern -]:订阅一个或者多个符合pa ...

  9. 【转】Linux-CentOS7设置程序开启自启步骤!

    链接:https://blog.csdn.net/wang123459/article/details/79063703

  10. day18 Pyhton学习 匿名函数

    匿名函数 别称: lambda表达式 函数,没有名字 def wahaha(n):#wahaha return n**2 print(wahaha.__name__) qqxing = lambda ...