java面向对象三大特性:封装、继承、多态——举例说明
生活随笔
收集整理的这篇文章主要介绍了
java面向对象三大特性:封装、继承、多态——举例说明
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
概念
封装:封装就是将客观的事物抽象成类,类中存在属于这个类的属性和方法。
继承:继承就是把父对象继承过来,这样子类就存在了父类的操作方法,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如下所示,注意父类和子类里面有静态块和构造方法,看下面测试代码,可以先写出你认为的执行结果:
测试结果如下:
我是Fruit类静态块 我是Apple类静态块 我是Fruit类构造方法 我是Apple类构造方法 我的名字是Apple2、使用父类引用构建子类对象的时候,父类和子类的静态块和他们的构造方法的执行顺序是什么?
测试的main如下所示,注意父类和子类里面有静态块和构造方法,看下面测试代码,可以先写出你认为的执行结果
测试结果如下:
我是Fruit类静态块 我是Apple类静态块 我是Fruit类构造方法 我是Apple类构造方法 我的名字是Apple3、如果两块代码一起执行会发生什么呢?
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面向对象三大特性:封装、继承、多态——举例说明的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 什么是反射?反射的用法?实例说明。
- 下一篇: java将数组元素倒置(反转)的方法?我