概念

封装:封装就是将客观的事物抽象成类,类中存在属于这个类的属性和方法。
继承:继承就是把父对象继承过来,这样子类就存在了父类的操作方法,java是单继承,就是只能继承一个父对象。
多态:多态就是程序中允许出现重名现象,java实现多态的方式有方法重载和成员变量覆盖两种形式。

前期准备

首先定一个Fruit对象,里面封装了一个getName方法

class Fruit {static {System.out.println("我是Fruit类静态块");}public Fruit() {System.out.println("我是Fruit类构造方法");}public void getName() {System.out.println("我的名字是Fruit");}}

再定一个Apple对象来继承Fruit对象

class Apple extends Fruit {static {System.out.println("我是Apple类静态块");}public Apple() {System.out.println("我是Apple类构造方法");}public void getName(){System.out.println("我的名字是Apple");}
}

其中Apple对象重写了父类的getName方法。

测试代码

1、使用子类构建对象的时候,父类和子类的静态块和他们的构造方法的执行顺序是什么?
测试的main如下所示,注意父类和子类里面有静态块构造方法,看下面测试代码,可以先写出你认为的执行结果:

 public static void main(String[] agrs) {Apple apple = new Apple();apple.getName();}

测试结果如下:

我是Fruit类静态块
我是Apple类静态块
我是Fruit类构造方法
我是Apple类构造方法
我的名字是Apple

2、使用父类引用构建子类对象的时候,父类和子类的静态块和他们的构造方法的执行顺序是什么?
测试的main如下所示,注意父类和子类里面有静态块构造方法,看下面测试代码,可以先写出你认为的执行结果

 public static void main(String[] agrs) {//使用父类引用指向子类对象Fruit fruit = new Apple();fruit.getName();}

测试结果如下:

我是Fruit类静态块
我是Apple类静态块
我是Fruit类构造方法
我是Apple类构造方法
我的名字是Apple

3、如果两块代码一起执行会发生什么呢?

    public static void main(String[] agrs) {Fruit fruit = new Apple();fruit.getName();System.out.println("---------分割线---------");Apple apple = new Apple();apple.getName();}

执行结果:

我是Fruit类静态块
我是Apple类静态块
我是Fruit类构造方法
我是Apple类构造方法
我的名字是Apple
---------分割线---------
我是Fruit类构造方法
我是Apple类构造方法
我的名字是Apple
总结

1、子类对象构建的时候静态块和构造方法执行顺序是:父类静态块 -> 子类静态块 ->父类构造方法 -> 子类构造方法
2、父类和子类的静态块是执行一次的
3、子类方法重写父类方法后,使用子类构建的对象执行的都是子类的方法。

java面向对象三大特性:封装、继承、多态——举例说明相关推荐

  1. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  2. Java面向对象三大特性(封装继承多态)解释及案例

    文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...

  3. Java面向对象三大特性之继承多态的预习笔记,are you ready? 面对疾风吧!

    文章目录 继承(extends) super关键字 方法重写 instanceof关键字 abstract关键字 接口(interface) 多态 继承(extends) AextendsB A继承了 ...

  4. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

  5. java 面向对象三大特性之继承 万字详解(超详细)

    目录 前言 : 一.为什么需要继承: 二.什么是继承(Warning : 篇幅较长)? 1.继承概述: 2.子类继承父类之后达到的效果 : ①如何使用继承? ②代码演示 : 3.继承的使用场景: eg ...

  6. Java面向对象三大特性(封装、继承、多态)

    文章目录 前言 一.封装 1. 封装的概念 2. private实现封装 3. getter和setter方法 4.封装的好处 二.继承 1. 继承的概念 2. extends实现继承 3. supe ...

  7. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  8. Python OOP:面向对象三大特性(封装、继承、多态)、类属性和实例属性、类方法@classmethod、静态方法@staticmethod、函数和类callable、__call__

    一.面向对象三大特性 二.多态 定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果. 一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象 ...

  9. 【职坐标】java面向对象三大特性(二)——继承详解

    [职坐标]java面向对象三大特性(二)--继承详解 a) 什么是继承? i. 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可 b) ...

  10. java 面向对象三大特性之多态 万字详解(超详细)

    目录 前言 : 一.为什么需要多态 : 1.白璧微瑕 : 2.举栗(请甘雨,刻晴,钟离吃饭): 3.代码 : 4.问题 : 二.什么是多态 : 1.定义 : 2.多态的实现步骤(重要) : 三.多态的 ...

最新文章

  1. PCL:PCLPlotter可视化特征直方图
  2. 跨学科融合,塑π型人才 | 数据科学研究院第四届RONG奖学金答辩会成功举办...
  3. c# 模拟window 操作鼠标|winapi
  4. python是用什么语言开发的-专为人工智能和数据科学而生的Go语言,或将取代Python...
  5. git 常用命令使用
  6. jQuery-基本选择器的种类
  7. 360加固分析(一)
  8. java快速寻找一个数组的最大值或最小值, min, max,三种方法
  9. 大数据WEB阶段 Servlet配置优先级 , Spring容器设置对静态资源放行
  10. linux桌面效率提高,ElementaryOS:使用这个轻量级 Linux 桌面提高工作效率
  11. mongoDB3.2.8 升级遇到的问题
  12. net如何判断浏览器的类别
  13. 线程中task取消_Rust Async: async-task源码分析
  14. 马云又向美国捐赠50万份检测试剂盒和100万只口罩
  15. java上传文件的二进制_文件的上传:二进制文件的上传;
  16. Qt4_实现自定义委托
  17. 2018年,云计算的6大未来趋势
  18. linux添加自己的键盘映射,linux下修改键盘映射
  19. wd移动硬盘插电脑没反应_西数移动硬盘-急急急!!!!!西部数据移动硬盘插在电脑上不显示盘符了,有人知道? 爱问知识人...
  20. 三段式 matlab,1stopt三段式函数拟合

热门文章

  1. excel中如何筛选重复数据
  2. 距离剩者为王,服饰企业还要跨过很多道坎
  3. 国产奶粉冲击高端,飞鹤、蒙牛、合生元们的牌好不好打?
  4. 本土品牌“资源诅咒”之下,为何李宁逆袭,达芙妮跌落?
  5. ad采集 cube配置 dma_【技术技巧】 使用MCC数据采集设备获取模拟波形
  6. 事物的开始和结束命令分别是什么_人教版小学四年级语文下册期末测试题及答案[1]...
  7. hp designiet 500_2020年HP学院壁纸
  8. python导入包库的两种语句import 和 from … import
  9. java类多例_Java多例设计模式实例详解
  10. Python中两种文件修改的方式