什么是继承

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

为什么需要继承?

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

比如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. C#如何根据DataTable生成泛型List或者动态类型list
  2. 物理生力热实验不确定度计算源代码
  3. python的基础网络编程是下列_Python基础(六)网络编程
  4. 没用调用flush导致的数据保存丢失
  5. linux网络编程之多路I/O转接服务器poll函数
  6. mysql增删改查 工具类_JDBC工具类实现对数据库数据的增删改查
  7. mysql数据库教程全解_MySQL数据库基础教程详解
  8. 第 8 章 MybatisPlus 扩展
  9. android 权限
  10. tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:)...
  11. 求众数leetcode(169)+投票算法
  12. vsbutton中的集合编辑器怎么打开_理工科学生的好帮手,EdrawMath数学公式编辑器...
  13. html实现字体加边框及填充
  14. 大学生计算机基础实验文库,大学计算机基础实验指导书(ecxel)
  15. 掌握USB/HDMI/MHL/DP验证规范 高速接口传输一次上手
  16. Unity获取隐藏的游戏对象
  17. 矿业迷局:当减半行情遭遇疫情 |链捕手
  18. 美国互联网理论是伪科学?
  19. Python程序员私活来源:大学同窗开公司,伸手就要爬资料
  20. 分享两道阿里P7究极难度算法题,满满干货指导

热门文章

  1. Axure RP 8:实现级联菜单
  2. 了解Case When
  3. 通信人的“灵魂三问”,你知道答案吗?(文末有赠书福利)
  4. Linux圈子里的“鲁大师“dmidecode-尚文网络xUP楠哥
  5. 论文整理——用于跟踪散养猪的实时计算机视觉系统的开发
  6. 【Luat-air551G】4 air551G连接esp32获取GGA数据
  7. android的自动布局框架,Android ConstraintLayout 构建自适应界面
  8. C# 简单四舍五入函数
  9. JavaScript获取当前年月日,时分秒。
  10. android 油耗管理app,油耗记录app下载-油耗记录 安卓版v1.0.0-PC6安卓网