继承

  • 面向对象编程(OOP)三大特征:继承,封装,多态

  • 目的:为了减少重复代码,避免复制粘贴

  • 创建父类Animal


public class Animal { private String name; //定义name属性
private String kind; //定义kind属性 private int age; //定义age属性 public void bite(){ //创建bite方法 System.out.println("咬咬咬");
} public void bark(){ //创建bark方法 System.out.println("叫叫叫")
} @Override
public String toString() {
return "Animal{" +
"name='" + name + '\'' +
", kind='" + kind + '\'' +
", age=" + age +
'}';
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getKind() {
return kind;
} public void setKind(String kind) {
this.kind = kind;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}
}
  • 创建子类Cat继承于父类Animal

public class Cat extends Animal{ }

  • MainClass中使用子类Cat

public class SecClass { public static void main(String[] args) { Cat cat = new Cat(); cat.setName("旺财");
cat.setAge(2);
cat.setKind("土狗"); System.out.println(cat);
cat.bark();
cat.bite();
}
}
  • 输出显示测试数据

  • 注释

    • 子类和父类是相对概念

    • 只有单继承,只能继承一个类

    • 子类可以继承父类所有的"public"修饰的属性和方法,"private"修饰的无法继承

    • main中通过访问public方法来访问private属性

    • 子类可以有独特的方法和属性,功能可以比父类更细致

    • 父类比子类范围更大

    • Java中所有的类都最终继承于Object类

  • 当子类Cat中想要新加方法时


public class Cat extends Animal{ public void wash(){ System.out.println("洗脸");
}
}
  • 当子类Cat想要修改(重写)父类方法时

    • 子类可以重写(Alt+Insert选第三个,快捷键ctrl+o)
    • 测试样例,bark()方法想要输出"喵喵喵"

public class Cat extends Animal{ @Override
public void bark() { System.out.println("喵喵喵"); }
}
  • 当子类Cat既想重写父类方法,又想在父类方法的基础上新加东西

public class Cat extends Animal{ public void bite() { super.bite();//→就是执行前面的bite"咬咬咬" System.out.println("猫咬人");//新添加的东西
}
}
  • 注释

    • super的作用在子类中调用从父类继承的方法
  • 测试样例

2019.3.13 Java的特性——继承的更多相关文章

  1. java三大特性--继承

    定义: 继承就是子类继承父类的特征和行为,使得子类具有父类的各种属性和方法,使得子类具有父类相同的行为. 继承的好处: 有效实现代码复用,避免重复代码的出现. 让类与类之间产生了关系,是多态的前提. ...

  2. 二、java三大特性--继承

    在讲解之前我们先看一个例子 Husband.java public class Husband { private String name; private String sex; privatein ...

  3. 2019.3.13 Java实现分数的四则运算

    Java实现分数的四则运算 自己的写法 markdown太久没写格式不会用了--将就着看 Fraction.java package com.lanou; public class Fraction ...

  4. 2019/05/13 JAVA虚拟机堆内存调优

    -Xms4000m 堆内存初始值 * -Xmx4000m 堆内存最大值 * -XX:+PrintGCDetails 打印GC信息 * -XX:+UseSerialGC 使用串行GC * -XX:+Pr ...

  5. java四大特性理解(封装继承多态抽象)

    封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象.封装是一 ...

  6. Java提高篇之理解java的三大特性——继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  7. Java 三大特性——封装、继承、多态

    一.封装 封装,实际就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用. 概念:在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节 ...

  8. JAVA基础第二章-java三大特性:封装、继承、多态

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  9. java三大特性:封装、继承、多态

    Java三大特性之封装   一.定义 封装性指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部的信息,而是通过该类所提供的方法来实现对内部信息的操作和访问. 二.使用封装的好处: 1 ...

随机推荐

  1. 第三周Linux编程实例练习

    通过以下程序来练习 head.h # ifndef HEAD_H #define HEAD_H #include <stdio.h> int add(int,int); int sub(i ...

  2. Python基础入门-For循环

    For循环的功能比较强大,他可以帮助我们实现很多重复性的工作.而且for循环能迭代不同的数据结构.他的应用也十分的广泛,作为初学者,我们需要对循环的概念多加理解和练习.接下来我们就来学习for循环的一 ...

  3. javascrip总结12:逻辑运算符与等号运算符

    1 逻辑运算符 逻辑运算的结果只有true 或者 false. 1.1 与&&: 两个表达式为true的时候,结果为true. 1.2 或|| 只要有一个表达式为true,结果为tru ...

  4. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(3):常用动态代理之JDK动态代理、CGLIB动态代理

    一.动态代理的理解 动态代理的意义在于生成一个占位(又称代理对象),来代理真实对象,从而控制真实对象的访问.        先来谈谈什么是代理模式.        假设这样一个场景:你的公司是一家软件 ...

  5. jQuery插件扩展extend的实现原理

    相信每位前端的小伙伴对jQuery都不陌生吧,它最大的魅力之一就是有大量的插件,去帮助我们更轻松的实现各种功能. 前几天晚上,闲来无事,就自己动手写了个简单的jQuery插件,功能很简单,只是让选定的 ...

  6. easyui datagrid deleteRow(删除行)的BUG

    有时候想临时保存一些数据,等确定好后在批量一次提交,但EasyUI  datagrid 用的时候添加可以正常,如果从中间删除那行号就全乱了.导致删除的时候有可能删除上一行数据. function ad ...

  7. C#backgroundWorker

    private void button1_Click(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); } priva ...

  8. docker 镜像创建

    dockerfile FROM microsoft/aspnetcore:2.0 ARG source WORKDIR /app EXPOSE COPY ${source:-/} . ENTRYPOI ...

  9. RealSense R400系列深度相机的图像获取保存和格式转换

    关于RealSense的基础使用的博文用的库有点混杂,挺多博文都是早期maneger的那个库,对那个不是很了解,主要记录一下使用最新的函数库的基础使用. 相机型号:RealSense R435 使用函 ...

  10. php 递归求得目录大小

    /* * 递归求得目录大小 * @param $dir 目录 */ function dirsize($dir){ $allsize = 0; $handle = opendir($dir); whi ...