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访问父类方法 构造函数与继承一起使用 类型 ...
最新文章
- C#如何根据DataTable生成泛型List或者动态类型list
- 物理生力热实验不确定度计算源代码
- python的基础网络编程是下列_Python基础(六)网络编程
- 没用调用flush导致的数据保存丢失
- linux网络编程之多路I/O转接服务器poll函数
- mysql增删改查 工具类_JDBC工具类实现对数据库数据的增删改查
- mysql数据库教程全解_MySQL数据库基础教程详解
- 第 8 章 MybatisPlus 扩展
- android 权限
- tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:)...
- 求众数leetcode(169)+投票算法
- vsbutton中的集合编辑器怎么打开_理工科学生的好帮手,EdrawMath数学公式编辑器...
- html实现字体加边框及填充
- 大学生计算机基础实验文库,大学计算机基础实验指导书(ecxel)
- 掌握USB/HDMI/MHL/DP验证规范 高速接口传输一次上手
- Unity获取隐藏的游戏对象
- 矿业迷局:当减半行情遭遇疫情 |链捕手
- 美国互联网理论是伪科学?
- Python程序员私活来源:大学同窗开公司,伸手就要爬资料
- 分享两道阿里P7究极难度算法题,满满干货指导
热门文章
- Axure RP 8:实现级联菜单
- 了解Case When
- 通信人的“灵魂三问”,你知道答案吗?(文末有赠书福利)
- Linux圈子里的“鲁大师“dmidecode-尚文网络xUP楠哥
- 论文整理——用于跟踪散养猪的实时计算机视觉系统的开发
- 【Luat-air551G】4 air551G连接esp32获取GGA数据
- android的自动布局框架,Android ConstraintLayout 构建自适应界面
- C# 简单四舍五入函数
- JavaScript获取当前年月日,时分秒。
- android 油耗管理app,油耗记录app下载-油耗记录 安卓版v1.0.0-PC6安卓网