1、继承:向上追溯,对同一批类的抽象,延续和扩展父类的一切信息!

1)关键字:extends      例如,父类是Animal,子类是Dog;   eg: public class Dog extends Animal

    2)父类也称超类,可用super引用

    3)子类也称派生类:必须继承父类,可以继承父类的属性和方法

      重写:在子类中,方法名、形参、个数、类型、顺序相同!     关键字:@Override

      重载:在同一个类中,名称相同的,  形参个数、类型、顺序不同!

       注意:继承父类的方法时,因父类不满足要求了,我们需要重写父类的方法。

      eg: @Override
           public void eat() {
              System.out.println("猫吃鱼");
          }

    4)注意事项:属性不能被重写!
                              私有方法、静态方法、final方法 不能被重写!
                              重写前提需要继承!

2、继承的好处:

      重用代码、避免重复、重写方法、新曾方法、提高了效率!

3、Object类

是所有类的祖先,任何一个类都直接或者是间接的继承了Object!
           如果一个类没有显示extends任何类,默认的继承Object类!

4、例子:功能:Aniaml类,Dog类,Cat类

/*
*Animal 类
*/ public class Animal extends Object{
//颜色
String color;
//年龄
int age; public void eat(){
System.out.println("动物吃饭");
} public void sleep(){
System.out.println("动物睡觉");
} public void introduce(){
System.out.println("自我介绍:颜色:"+color+",age:"+age);
}
@Override
public String toString() {
return "动物的颜色:"+color+",年龄:"+age;
} }
//Dog类

public class Dog extends Animal{
//狗自己特有的属性
String name;
String type; //特有的看门的方法
public void guard(){
System.out.println("小狗"+name+"在看门,是人类的好朋友");
} @Override
public void eat() {
System.out.println("小狗"+name+"在吃饭");
}
@Override
public void sleep() {
System.out.println("小狗"+name+"在睡觉");
} @Override
public void introduce() {
System.out.println("dog:color:"+color+",age:"+age+",name"+name+",type:"+type);
}
@Override
public String toString() {
return "狗的名称:"+name+",年龄;"+age+"岁,种类"+type+",颜色:"+color;
}
}
//Cat类

public class Cat extends Animal{
String name;
String sex;
@Override
public void eat() {
System.out.println("猫吃鱼");
} @Override
public void sleep() {
System.out.println("猫看不见它睡觉");
} @Override
public void introduce() {
System.out.println(name+"喵喵的叫");
}
@Override
public String toString() {
return "猫的名称:"+name+",年龄:"+age+"岁,性别"+sex+",颜色:"+color;
} }
//TestAnimal

public class TestAnimal {
public static void main(String[] args) {
Animal an =new Animal();
an.age=2;
an.color="yellow";
an.eat();
an.sleep();
an.introduce();
System.out.println(an.toString());
System.out.println("---------------"); Dog dog =new Dog();
dog.age=3;
dog.color="black and blue";
dog.name="旺财";
dog.type="拉布拉多";
dog.eat();
dog.sleep();
dog.introduce();
dog.guard();
System.out.println(dog.toString());
System.out.println("---------------"); Cat cat =new Cat();
cat.age=2;//父类的属性
cat.color="白色";//父类的属性
cat.name="图图";//孩子自己独有的
cat.sex="母";//孩子自己独有的
cat.eat();//重写了
cat.sleep();//重写了
cat.introduce();//重写了
System.out.println(cat);
} }

 

        

JAVA核心技术--继承的更多相关文章

  1. JAVA核心技术--继承(1)

    1.继承:向上追溯,对同一批类的抽象,延续和扩展父类的一切信息! 1)关键字:extends      例如,父类是Animal,子类是Dog;   eg: public class Dog exte ...

  2. 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承

    <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...

  3. Java核心技术点之泛型

    1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小 ...

  4. Java核心技术点之集合框架

    1. 概述     Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容 ...

  5. java核心技术学习笔记之一程序设计概述

    Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...

  6. Java的继承、封装与多态

    Java的继承.封装与多态 基本概念 面向对象OO(Object Oriented):把数据及对数据的操作方法放在一起,作为一个相互依存的整体,即对象. 对同类对象抽象出共性,即类. 比如人就是一个类 ...

  7. Java核心技术第五章——1.类、超类、子类(2)

    继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译 ...

  8. java的优点和误解 《java核心技术卷i》第一章

    <java核心技术卷i>第一章主要内容包括三点: 1:Java白皮书的关键术语:描述Java的十一个关键字: 2:Java applet 3 :关于Java的常见误解   1:第一章:Ja ...

  9. JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)

    一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...

随机推荐

  1. 聊聊Dataguard的三种保护模式实验(下)

    4.最大保护模式Maximum Protection 最大保护模式是DG可以提供的最高保护级别,建立在日志同步传输和确认的基础上.同样,可以使用alter database方法进行设置. SQL> ...

  2. 微信支付-JSAPI支付V3-查询退款

    接口地址 接口链接:https://api.mch.weixin.qq.com/pay/refundquery 是否需要证书 不需要. 请求参数 字段名 变量名 必填 类型 示例值 描述 公众账号ID ...

  3. 嵌入式 hi3518平台以太网网络模块设计包括重连机制和网线检测机制

    <span style="font-family:Courier New;"> #include <sys/types.h> #include <st ...

  4. window 与ubuntu共享文件 hgfs下为空和不用每次挂载hgfs的方法

    解决hgfs为空的方法: sudo apt-get install open-vm-dkms sudo mount -t vmhgfs .host:/ /mnt/hgfs 解决每次都要挂载的方法: 1 ...

  5. 处理 JSON null 和空数组及对象

    描述了对 JSON 数据中使用的 null 和空数组及对象的处理. JSON 数据具有 null 和空数组及对象的概念.此部分说明其中每个概念如何映射到 null 和未设置的数据对象概念. Null ...

  6. n个数的最小公倍数

    Description 求n个数的最小公倍数.   Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数.   Output 为每组测试数据输出它们的最小公倍数,每个测 ...

  7. Android之操作SQLite

    一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 ...

  8. excel导入数据到sqlserver

    1.读取excel数据到dataset public static System.Data.DataSet ExcelSqlConnection(string filepath, string tab ...

  9. Hadoop2的简单安装

    前面花了很多时间来介绍hadoop1的安装,随着hadoop的发展,hadoop2的应用也越来越普及,hadoop2解决了hadoop1中的很多问题,比如单点故障,namenode容量小的问题. 我们 ...

  10. 正整数N是否是素数

    来自:[数据结构与算法分析——C语言描述]练习2.13 问题描述: a. 编写一个程序来确定正整数N是否是素数. b. 你的程序在最坏的情形下的运行时间是多少(用N表示)? c. 令B等于N的二进制表 ...