当前位置: 首页 > article >正文

Java的继承:方法;属性?

Java的继承:方法;属性?

  • 前言
  • 前置知识
  • 代码案例

前言

最近公司有个需求需要用 方法模板模式 改造一部分冗余的代码,因为涉及到Java中父、子类之间的继承重写,所有来记录一下
这里抛出一个问题:前提 父类声明的子类对象(例如 父类 aa = new 子类()
如果aa 调用重写的方法 调用的是 父类的?还是子类的?
如果aa 调用重写的属性 调用的是 父类的?还是子类的?

结论:调用方法是子类重写的方法。而属性是父类的属性。

前置知识

绑定:指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定。
静态绑定:在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由 编译器或其它连接程序实现。
动态绑定: 在运行时根据具体对象的类型进行绑定。

结论:在Java中对属性采用静态绑定,对方法采用动态绑定

代码案例

父类:

public class Animal {
    public String name = "动物名";
    public String moodName = "动物开心地";

    public void eat() {
        System.out.println("动物的吃法---");
        System.out.println(this.name);
        this.mood();
    }

    public void mood() {
        System.out.println(this.moodName);
    }
}

子类:

public class Dog extends Animal{
    public String moodName = "小狗激动地";

    @Override
    public void mood() {
    	System.out.println("子类方法");
        System.out.println(this.moodName);
    }
}

主方法:

public class TestMain {
    public static void main(String[] args) {
        Animal dog = new Dog();
        dog.eat();
    }
}

输出:
在这里插入图片描述

分析一波:

  1. Animal dog = new Dog(); 这里 引用为父类,new的对象为子类
  2. dog.eat();因为Dog本身没有重写eat()方法,所以会走到父类的eat方法 在这里插入图片描述在这里插入图片描述
  3. 紧接着打印“动物的吃法—”;打印Animal.name;
    在这里插入图片描述
  4. 然后执行this.mood(); 因为子类已经重写该方法,所以执行子类的方法 打印“子类方法”、Dog.moodName
    在这里插入图片描述

http://www.kler.cn/a/590811.html

相关文章:

  • 个人学习编程(3-18) leetcode刷题
  • 在云平台上用Claude 3.7 AI代理自动化电脑图形界面点击操作做表格
  • PostgreSQL17允许psql的\watch在返回最小行数后停止
  • 2025年3月19日 十二生肖 今日运势
  • 电子硬件入门(三)——偏置电路
  • 模型评估——acc、P、R、F值、交叉验证、K折交叉验证
  • PATB1113 钱串子的加法
  • C++ 友元 / friend关键字解读
  • MongoDB 只能存储能够序列化的数据(比如字符串、数字等),而 Python 的 UUID 对象并不是直接可以存入数据库的格式。
  • Centos7更换仓库源为阿里云镜像
  • Hyperlane:Rust 生态中的轻量级高性能 HTTP 服务器库,助力现代 Web 开发
  • 力扣题目汇总 使用贪心算法解决问题
  • 热更新解决方案5——toLua
  • TCP 客户端 - 服务器通信程序搭建
  • ora-600 ktugct: corruption detected---惜分飞
  • 晶艺代理,100V3.5A高耐压LA1823完全替换MP9487--启烨科技有限公司
  • 每天五分钟深度学习框架pytorch:基于pytorch搭建循环神经网络RNN
  • 【大模型基础_毛玉仁】3.1 Prompt 工程简介
  • 清晰易懂的Node.js安装教程
  • 【Git学习笔记】Git分支管理策略及其结构原理分析