网站首页 > 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如下所示,注意父类和子类里面有静态块和构造方法,看下面测试代码,可以先写出你认为的执行结果:
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
- 上一篇: 为什么 Java 不支持类多重继承?
- 下一篇: java 面向对象编程:封装、继承、多态
猜你喜欢
- 2025-01-14 Java动态代理原理图解(附2种实现方式详细对比)
- 2025-01-14 java 核心技术-12版 卷Ⅰ- 5.10 继承的设计技巧
- 2025-01-14 java 面向对象编程:封装、继承、多态
- 2025-01-14 为什么 Java 不支持类多重继承?
- 2025-01-14 Java:Java中的多重继承问题
你 发表评论:
欢迎- 04-24Java Collections 工具类集合框架中常用算法解析
- 04-24桶排序的简单理解
- 04-24Java集合框架底层实现原理大揭秘
- 04-24Java 集合框架全面解析:选对数据结构,提升开发效率
- 04-24c#集合排序
- 04-24Java面试中常被问到的集合类深度解读
- 04-24VBA技术资料MF278:对集合进行排序
- 04-24Spring 最常用的 7 大类注解,史上最强整理
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)