什么是继承

继承就是子类继承父类的特征与行为。特征即成员属性,行为即成员方法

为什么需要继承?

提高代码复用性,减少代码冗余,提高开发效率。

比如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中的继承相关推荐

  1. java的继承_java中的继承(一)

    在java中,所有的类都有一个默认的父类Object,即使我们没有显式的去继承这个类.在Object类中定义了一些方法,其中有几个方法是我们必须掌握的,比如equals方法,hashCode方法,wa ...

  2. java 继承 extends_java中的继承 (extends) 详解

    继承(extends) 1. 父类与子类 父类也叫基类.超类  子类也叫派生类  在继承的而关系中,"子类就是一个父类".也就是说,子类可以被当做父类来看待.例如父类是员工,子类是 ...

  3. java is a_java中的继承(is a )和组合(has a)

    我们知道java语言有三大特性:封装,继承,多态 但是继承和封装却是一对有点矛盾的两个方面,怎么理解?? 我们想想:封装的目的是想让隐藏类中的属性和方法.但是在继承过程中,我们的子类肯定会继承父类的方 ...

  4. 在java语法中继承_java中的继承

    一.继承: 1.如果不使用继承,会出现以下一些问题: (1)代码重复 (2)如果要修改的话,两个类都需要修改. 2.继承体现的是一种is a 的关系.eg:Dog is a Pet;apple is ...

  5. java中静态方法可以被继承_关于java:静态方法中的继承

    为什么下面的代码会打印"MAIN"? public class Main { public static void method() { System.out.println(&q ...

  6. java面向对象基本概念下--继承初始化 (练习题超多超详细)

    本文内容 三大特性--继承(重点) 方法重写(重点) super关键字(重点) final修饰符(重点) 类初始化(难) 实例初始化(难) 博主将面向对象内容进行了整理 共有6篇博文下面将附上其他文章 ...

  7. Java数据结构一 —— Java Collections API中的表

    1.Collection接口 位于java.util包中,以下是重要的部分. 1 public interface Collection<AnyType> extends Iterable ...

  8. java 的继承_关于java中的继承

    我们都知道Java中的继承是复用代码.扩展子类的一种方式,继承使得Java中重复的代码能够被提取出来供子类共用,对于Java程序的性能以及修改和扩展有很大的意义,所以这是一个非常重要的知识点. 那么对 ...

  9. 详细分析如何在java代码中使用继承和组合

    文章目录 继承与组合 何时在Java中使用继承 何时在Java中使用组合 继承与组成:两个例子 用Java继承重写方法 Java不具有多重继承 使用super访问父类方法 构造函数与继承一起使用 类型 ...

最新文章

  1. [Windowns C]递归遍历指定目录下的子目录和文件
  2. R学习之——R用于文本挖掘(tm包)
  3. WampServer的配置
  4. netty依赖_Netty系列之源码解析(一)
  5. 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---24
  6. Oracle出现 The Network Adapter could not establish the connection
  7. Struts(十四):通用标签-form表单
  8. 关于使用tensorflow object detection API训练自己的模型-补充部分(代码,数据标注工具,训练数据,测试数据)
  9. c语言遍历字节,C语言遍历结构体
  10. php trait编译实现,为什么PHP Trait不能实现接口?
  11. ashx 使用Session
  12. Java经典设计模式 总览
  13. 微信投票python脚本_微信投票python脚本
  14. iOS代码混淆工具-iOS混淆工具-4.3解决工具-4.3审核被拒
  15. 公司办公提高无线网络质量解决方案
  16. 谈论机器学习中,哪种学习算法更好有意义吗?
  17. 网站制作的流程包括哪几个步骤?
  18. PeopleSoft开发:创建查询QUERY
  19. python千人成像_ps怎么制作一个千人成像照片拼图?
  20. 这里给详细解答一下自己办理商标注册的申请流程

热门文章

  1. vue项目实现商品分类双向联动【简洁易懂】
  2. 2021-2022毕业一年工作总结--华为外包VRP自动化测试
  3. 长江大学工程技术学院计算机专业分数线,长江大学工程技术学院历年分数线 2021长江大学工程技术学院录取分数线...
  4. 免费文字转语音软件有哪些?这几款宝藏工具你值得拥有
  5. 白平衡是什么?怎么理解白平衡?
  6. 微信游览器,解决安卓和ios自动播放音乐
  7. 获取微信html代码,微信小程序云开发js抓取网页内容
  8. 基于optigrating光纤光栅光谱的模拟分析简明教程
  9. c 语言的数据类型ppt,C语言第3章数据类型.ppt
  10. mysql concat 日期_MySQL tips (日期时间操作/concat 等)