ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

继承和继承案例

2022-06-16 14:00:45  阅读:108  来源: 互联网

标签:name 继承 age id 案例 int 父类 public


继承:extends

每个人都应该有过这样的经历,写java项目/作业的时候创建很多相似的类,类中也有很多相同的方法,做了很多重复的工作量,感觉很臃肿。而合理使用继承就可以大大减少重复代码,提高代码的复用性

 

什么是继承?

继承 是面向对象软件技术中的一个概念,它使得复用以前的代码非常的容易

java语言是非常经典的面向对象的语言,在java对象中继承就是自雷继承父类中的属性方法,使得子类对象具有父类的属性和方法,或自雷从父类继承方法,使得自雷具有父类相同的方法,父类有时候也叫基类,超类,自雷有时候也被称为派生类

 

案例:我们知道动物有很多种,是一个比较大的概念。在动物的种类中我们熟悉的有猫,狗等等,他们一般都有一样的特征,比如:吃东西,都可以发出声音,在java语言中实现cat和dog的时候就需要继承Animal这个类,继承之后cat和dog就是动物类的自雷,Anilal是父类

 

为什么要继承:

我们创建dog和cat等动物类的时候实现其具体的方法就可以了吗,实现这个继承似乎使得这个类的结构不那么清楚,如果仅仅有两三个类,梅格雷的属性方法很有限的情况下没有必要实现继承,但事情并非如此,事实上一一个系统中往往有很多个类并且有很多的相似之处,比如猫狗都属于动物,或学生和老师都属于人,梅格雷可能有很多歌相同的属性和方法,这样的话梅格雷都重新写不进代码显得很短,代码工作量也会很大

这个时候继承的优势就出来了:可以直接使用父类的属性和方法,自己也可以有自己的新属性和方法满足扩展,父类的方法如果自己有需求更改也可以重写,这样使用继承不进大大的减少了代码量,也使得代码变得更加清晰可见

 

案例:

父类Animal

public class Animal {
private int id;
private String name;
private int age;

public Animal(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}

public Animal() {

}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public void eat(){
System.out.println("吃东西");
}
}

子类Dog、Cat
package com.Test02;

public class Cat extends Animal{
public Cat(int id, String name, int age) {
super(id, name, age);
}

public Cat() {
}

@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
package com.Test02;

public class Dog extends Animal{
public Dog(int id, String name, int age) {
super(id, name, age);
}

public Dog() {
}

@Override
public void eat() {
System.out.println("狗吃骨头");
}
}

测试类Test

 

 各自的类继承animal后可以直接使用父类的属性和方法,不需要重新编写,个各类如果有自己的方法可容易扩展

标签:name,继承,age,id,案例,int,父类,public
来源: https://www.cnblogs.com/ailhy/p/16381710.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有