网站首页 > 精选教程 正文
概念
封装:封装就是将客观的事物抽象成类,类中存在属于这个类的属性和方法。
继承:继承就是把父对象继承过来,这样子类就存在了父类的操作方法,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、子类方法重写父类方法后,使用子类构建的对象执行的都是子类的方法。
原文章地址:
https://www.bmabk.com/index.php/post/72728.html
猜你喜欢
- 2025-05-08 1.5、Java面向对象编程:类与对象、继承、多态、封装
- 2025-05-08 Java中的面向对象编程思想深度解读
- 2025-05-08 Java中的面向对象编程思想(java面向对象编程原则)
- 2025-05-08 Java的"两面性":面向对象与元编程技术的共生之道
- 2025-05-08 java面向对象编程(Java面向对象编程孙卫琴 电子版)
- 2025-05-08 2、Java面向对象编程思想(超详细)
- 2025-05-08 Java 学习之面向对象思想、类、对象
- 2025-05-08 此继承非彼继承,今天说的是面向对象的基本特征之一
- 2025-05-08 揭秘Java中的面向对象模型(java面向对象几大特征)
- 2025-05-08 快速对比理解,编程中,什么是面向对象,什么是面向过程
你 发表评论:
欢迎- 06-30【AI绘永昌】风景篇(二)(永昌图文)
- 06-30AI风景建筑图集(ai景观平面图)
- 06-30AI绘制精美绚丽的景色(ai绘制图案)
- 06-30AI风景,不存在的地方又增加了(ai风景插画作品)
- 06-301 分钟解锁!运用 DS + 即梦 + 豆包,轻松打造个性化风景音乐短视频
- 06-30美景欣赏 #AI绘画#(美景图画)
- 06-30AI动漫风景图集1 ~(ai动漫图片)
- 06-30原图壁纸,ai绘画风景(原图壁纸下载)
- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)