java继承music_java中的继承
什么是继承
继承就是子类继承父类的特征与行为。特征即成员属性,行为即成员方法
为什么需要继承?
提高代码复用性,减少代码冗余,提高开发效率。
比如Dog类里有姓名和年龄,Cat类也有姓名和年龄,这时就可以将这些共有的属性,抽取到一个新的类中,这个类就叫做父类。
示例代码一:不用继承的情况
Cat类
public class Cat {
private String name;
public void sleep(){
System.out.println(name+"睡觉");
}
public void eat(){
System.out.println(name+"吃饭");
}
public void miao(){
System.out.println(name+"喵喵叫");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Dog类
public class Dog {
private String name;
public void sleep(){
System.out.println(name+"睡觉");
}
public void eat(){
System.out.println(name+"吃饭");
}
public void wolf(){
System.out.println(name+"汪汪叫");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
测试类
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.setName("狗");
dog.sleep();
dog.eat();
dog.wolf();
System.out.println("-------------------------------------------");
Cat cat = new Cat();
cat.setName("猫");
cat.sleep();
cat.eat();
cat.miao();
}
}
运行结果
狗睡觉
狗吃饭
狗汪汪叫
-------------------------------------------
猫睡觉
猫吃饭
猫喵喵叫
示例代码二:使用继承的情况
Animal类
public class Animal {
private String name;
public void sleep(){
System.out.println(name+"睡觉");
}
public void eat(){
System.out.println(name+"吃饭");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Cat类
public class Cat extends Animal{
public void miao(){
System.out.println(this.getName()+"喵喵叫");
}
}
Dog类
public class Dog extends Animal {
public void wolf(){
System.out.println(this.getName()+"汪汪叫");
}
}
测试类
public class Test {
public static void main(String[] args) {
//子类继承父类,此时父类对象只能调用父类里面的属性和方法
Animal animal1= new Animal();
animal1.setName("狗");
animal1.sleep();
animal1.eat();
Animal animal2 = new Animal();
animal2.setName("猫");
animal2.sleep();
animal2.eat();
System.out.println("----------------------------");
//子类继承父类,子类对象既可以调用父类里的属性和方法,也可以调用自身的属性和方法
Dog dog = new Dog();
dog.setName("狗");
dog.sleep();
dog.eat();
dog.wolf();
Cat cat = new Cat();
cat.setName("猫");
cat.sleep();
cat.eat();
cat.miao();
System.out.println("----------------------------");
//子类继承父类,也可以用多态中的向下转型,访问子类的属性和方法
Animal animal = new Dog();
//animal.wolf(); 编译报错,说明向上转型的父类引用变量无法访问子类中的属性和方法
Dog dog1 = (Dog) animal;
dog1.setName("狗");
dog1.sleep();
dog1.eat();
dog1.wolf();
Animal animal3 = new Cat();
Cat cat1 = (Cat) animal3;
cat1.setName("猫");
cat1.sleep();
cat1.eat();
cat1.miao();
}
}
运行结果
狗睡觉
狗吃饭
猫睡觉
猫吃饭
----------------------------
狗睡觉
狗吃饭
狗汪汪叫
猫睡觉
猫吃饭
猫喵喵叫
----------------------------
狗睡觉
狗吃饭
狗汪汪叫
猫睡觉
猫吃饭
猫喵喵叫
继承的特点
用extends 修饰
一个类只能继承一个父类
子类在继承父类的同时,也可以有自己的属性和方法
子类继承父类,父类的对象只能调用父类中的属性和方法,无法调用子类的方法
子类继承父类,子类的对象既可以调用父类中的对象和属性,也可以调用自身的对象和属性
子类继承父类,是多态的前提
java继承music_java中的继承相关推荐
- java的继承_java中的继承(一)
在java中,所有的类都有一个默认的父类Object,即使我们没有显式的去继承这个类.在Object类中定义了一些方法,其中有几个方法是我们必须掌握的,比如equals方法,hashCode方法,wa ...
- java 继承 extends_java中的继承 (extends) 详解
继承(extends) 1. 父类与子类 父类也叫基类.超类 子类也叫派生类 在继承的而关系中,"子类就是一个父类".也就是说,子类可以被当做父类来看待.例如父类是员工,子类是 ...
- java is a_java中的继承(is a )和组合(has a)
我们知道java语言有三大特性:封装,继承,多态 但是继承和封装却是一对有点矛盾的两个方面,怎么理解?? 我们想想:封装的目的是想让隐藏类中的属性和方法.但是在继承过程中,我们的子类肯定会继承父类的方 ...
- 在java语法中继承_java中的继承
一.继承: 1.如果不使用继承,会出现以下一些问题: (1)代码重复 (2)如果要修改的话,两个类都需要修改. 2.继承体现的是一种is a 的关系.eg:Dog is a Pet;apple is ...
- java中静态方法可以被继承_关于java:静态方法中的继承
为什么下面的代码会打印"MAIN"? public class Main { public static void method() { System.out.println(&q ...
- java面向对象基本概念下--继承初始化 (练习题超多超详细)
本文内容 三大特性--继承(重点) 方法重写(重点) super关键字(重点) final修饰符(重点) 类初始化(难) 实例初始化(难) 博主将面向对象内容进行了整理 共有6篇博文下面将附上其他文章 ...
- Java数据结构一 —— Java Collections API中的表
1.Collection接口 位于java.util包中,以下是重要的部分. 1 public interface Collection<AnyType> extends Iterable ...
- java 的继承_关于java中的继承
我们都知道Java中的继承是复用代码.扩展子类的一种方式,继承使得Java中重复的代码能够被提取出来供子类共用,对于Java程序的性能以及修改和扩展有很大的意义,所以这是一个非常重要的知识点. 那么对 ...
- 详细分析如何在java代码中使用继承和组合
文章目录 继承与组合 何时在Java中使用继承 何时在Java中使用组合 继承与组成:两个例子 用Java继承重写方法 Java不具有多重继承 使用super访问父类方法 构造函数与继承一起使用 类型 ...
最新文章
- [Windowns C]递归遍历指定目录下的子目录和文件
- R学习之——R用于文本挖掘(tm包)
- WampServer的配置
- netty依赖_Netty系列之源码解析(一)
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---24
- Oracle出现 The Network Adapter could not establish the connection
- Struts(十四):通用标签-form表单
- 关于使用tensorflow object detection API训练自己的模型-补充部分(代码,数据标注工具,训练数据,测试数据)
- c语言遍历字节,C语言遍历结构体
- php trait编译实现,为什么PHP Trait不能实现接口?
- ashx 使用Session
- Java经典设计模式 总览
- 微信投票python脚本_微信投票python脚本
- iOS代码混淆工具-iOS混淆工具-4.3解决工具-4.3审核被拒
- 公司办公提高无线网络质量解决方案
- 谈论机器学习中,哪种学习算法更好有意义吗?
- 网站制作的流程包括哪几个步骤?
- PeopleSoft开发:创建查询QUERY
- python千人成像_ps怎么制作一个千人成像照片拼图?
- 这里给详细解答一下自己办理商标注册的申请流程
热门文章
- vue项目实现商品分类双向联动【简洁易懂】
- 2021-2022毕业一年工作总结--华为外包VRP自动化测试
- 长江大学工程技术学院计算机专业分数线,长江大学工程技术学院历年分数线 2021长江大学工程技术学院录取分数线...
- 免费文字转语音软件有哪些?这几款宝藏工具你值得拥有
- 白平衡是什么?怎么理解白平衡?
- 微信游览器,解决安卓和ios自动播放音乐
- 获取微信html代码,微信小程序云开发js抓取网页内容
- 基于optigrating光纤光栅光谱的模拟分析简明教程
- c 语言的数据类型ppt,C语言第3章数据类型.ppt
- mysql concat 日期_MySQL tips (日期时间操作/concat 等)