在java中,所有的类都有一个默认的父类Object,即使我们没有显式的去继承这个类。在Object类中定义了一些方法,其中有几个方法是我们必须掌握的,比如equals方法,hashCode方法,wait方法,notify方法,getClass方法等。这些方法我会在以后文章给大家介绍,今天我们要讨论的是java中的继承。

在继承关系中一般两个角色,父类和子类,其中父类也叫基类,子类也叫派生类。比如Dog类和Animal类,Dog类就是子类,Animal类就是父类,其中子类也就是Dog类继承了父类也就是Animal类的非私有属性和方法,同时子类可以增加子类特有的属性和方法,并且子类可以重写父类的方法。使用继承首先可以减少大量的重复性代码,把公共的代码提取出来放到父类中同时也方便管理。

接下来我们用代码来进一步解释,首先定义一个父类Animal类:

public classAnimal {privateInteger age;publicAnimal(){

System.out.println("Animal construct method");

}publicInteger getAge() {returnage;

}public voidsetAge(Integer age) {this.age =age;

}public voideat(){

System.out.println("eat food");

}

}

然后我们在定义一个dog类:

public class Dog extendsAnimal{private String color; //毛色

publicDog(String color){this.color =color;

}public voidrun(){

System.out.println("Dog is running");

}

@Overridepublic voideat(){

System.out.println("dog eat bone");

}

}

在Dog类中我们添加了子类自己的方法和属性并重写了父类的一个方法。在程序中的调用:

public static voidmain(String[] args) {

Dog dog= new Dog("红色");

dog.eat();

}

控制台打印:

Animal construct method

dog eat bone

这里需要说的我们在new Dog类的时候父类的构造方法也会执行并且会先于子类执行。定义一个cat类:

public class Cat extendsAnimal{

@Overridepublic voideat(){super.eat();

System.out.println("cat eat finsh");

}

}

调用Cat的eat方法发现不只打印了“cat eat finsh”还打印了父类的“eat  food”。当父类方法和子类方法重名时,可以通过super关键字强制访问父类的变量和方法并且在new子类对象的过程中,也可以通过super关键字调用父类的构造方法,没有使用super的时候默认调用父类的默认的构造方法,父类的构造方法要先于子类执行。

java的继承_java中的继承(一)相关推荐

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

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

  2. java 继承示例_Java中的继承类型以及示例

    java 继承示例 Prerequisite: Inheritance and its implementation in Java 先决条件: 继承及其在Java中的实现 Java中的继承类型 (T ...

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

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

  4. java接口的继承_Java 接口多继承

    按照理解,一般都是说Java 类是单继承,但可以实现多个接口.但是可以通过接口来实现类的多继承.(如何通过接口来实现多继承???) 那么就一直以为Java里面是单继承,今天看FutureTask源码的 ...

  5. java画板抽象类_java 中的 抽象方法 抽象类 和 接口有啥瓜葛

    文章目录 什么是java中的抽象方法 抽象方法是一种特殊的方法: 它只有声明,而没有具体的实现 例如: abstract void eat(); 上面定义了一个方法 eat() ,有修饰关键词 abs ...

  6. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  7. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

  8. java对象深克隆_JAVA中对象的克隆及深拷贝和浅拷贝

    使用场景: 在日常的编程过程 中,经常会遇到,有一个对象OA,在某一时间点OA中已经包含了一些有效值 ,此时可能会需一个和OA完全相对的新对象OB,并且要在后面的操作中对OB的任何改动都不会影响到OA ...

  9. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

最新文章

  1. 多面体的顶点方向以及分解定理以及多胞形凸组合
  2. JSP中两种include的区别
  3. 图的遍历:BFS和DFS
  4. glassfish_具有GlassFish和一致性的高性能JPA –第1部分
  5. codeforces 677A-C语言解题报告
  6. iphone three20 保存本地的图片
  7. bzoj4546-codechef XRQRS(可持久化Trie)
  8. 解决git 命令出现end问题
  9. #1062 – Duplicate entry ‘1’ for key ‘PRIMARY’
  10. 深度学习笔记 —— 卷积层
  11. VBScript: Windows脚本宿主介绍
  12. MDK5:正点原子stm32遇Target not created的解决方法
  13. 数字图像分辨率的认识
  14. 《窈窕绅士》里的诗句
  15. 帝国cms如何域名html的专题,帝国cms 二级域名绑定栏目的最完美的解决方案
  16. 影创科技孙立:江西将成为施展“鸿鹄”之志的热土
  17. JetBrains.ReSharper 字典
  18. 高通王翔:每年收入20%投入研发
  19. IPv4地址的结构体与网络字节序
  20. Unable to locate Attribute with the the given name [] on this ManagedType

热门文章

  1. python 日期格式和字符串格式的转化
  2. 阿里云https+nginx服务搭建
  3. javascript初级代码块
  4. C#调用C++编写的DLL函数各种参数传递问题
  5. 体验cas server
  6. 请问如何把.net framework框架集成在安装程序里头?
  7. 报错 插入更新_自增主键,三类插入测验答案,在这里。
  8. python内存管理变量_Python变量内存管理
  9. 炼油机出来的什么油_办一个废轮胎炼油设备厂有哪些注意事项
  10. r语言安装ipsolve_数值分析的R语言实现(插值部分)