Java中的继承操作

发布时间:2026/5/16 10:58:28

Java中的继承操作 在最近的学习中我了解到了Java中面向对象的基本核心之一——继承操作下面我想和大家分享和探讨一下这一方面的相关内容一起进步。 继承其核心作用是代码复用扩展功能。 代码复用是把多个重复的类的属性和方法都涵盖到父类当中不用再重复写一样的代码。例老虎、兔子、大象都有名字、都会吃抽成父类 Animal不用每个动物都重复写 name 和 eat 基础方法。 代码拓展主要在继承父类的继承上可以新增自己类独有的属性和方法在原有的功能上做拓展不用改动原来的父类。 还有继承可以简化代码结构改父类一处所有子类都生效分类清晰层级明确好读好维护。在dbug中有极大的优势 下面是以动物园饲养员喂食动物为例子来理解和演示继承的效果和应用的。 首先我创立了一个new模块其中包括animal和zookeeper的俩个包。父类描述统一特征子类以老虎为例在饲养员部分这里需要引用Animal的方法在main函数中具体运行如下importanimal.Elephant;importanimal.Monkey;importanimal.Tiger;importzookeeper.Zookeeper;publicclassMain{publicstaticvoidmain(String[]args){ZookeeperkrnewZookeeper();ElephantelephantnewElephant();TigertigernewTiger();MonkeymonkeynewMonkey();kr.feed(tiger);tiger.eat();}}运行结果但是一开始我在Tiger类中原码是这里运行结果就会显示null的出现是因为animal字段没有被赋予有效字符串。因为如果 Tiger 类中没有构造器或没有调用super(name)那么从父类继承的 name 就不会被赋值。即使在 Tiger 类中重写了 eat()如果方法里用到了 name 而 name 仍然是 null同样会输出 null eat meat。解决方法有在构造器中传入名字classAnimal{protectedStringname;publicAnimal(Stringanimal){this.animalanimal;}publicvoideat(){System.out.println(animal 正在吃东西);}}classTigerextendsAnimal{publicTiger(Stringanimal){super(animal);}}publicclassMain{publicstaticvoidmain(String[]args){TigertigernewTiger(泰哥);tiger.eat();}}第二种是在子类的无参构造器中设置默认名字classTigerextendsAnimal{publicTiger(){name默认老虎;}}我的代码只体现了继承的概念在后面的深入理解后子类可以使用改写功能来丰富内容拓展内容。父类classAnimal{protectedStringname;publicAnimal(Stringname){this.namename;}publicStringgetName(){returnname;}publicvoideat(){System.out.println(name eat food);}}Tiger类classTigerextendsAnimal{publicTiger(Stringname){super(name);}Overridepublicvoideat(){System.out.println(name 撕咬鲜肉);}}同时也纠正了名字的问题。希望大家能够通过Java的继承操作更深入地理解什么是面向对象设计逐步提升共同进步。

相关新闻