JAVA核心技术--继承

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);
    }

}

 

        

时间: 2024-08-11 07:35:10

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

Java核心技术学习笔记-继承

继承按照我们中文通俗的理解是不需要付出努力,就获得别人的能力或资产,比如继承父辈的家产,继承父辈的表达能力,继承父辈的外貌等等.在类里面的继承,可以理解不需要重新开发代码,就能复用父类的方法和域. 在继承关系里面,可以分为父类和子类,子类继承父类,那子类就有了跟父类一样对外的方法和属性,但是子类也可以拥有自己对外的方法和属性,就好比你继承了父辈的全部家产,但是还可以拥有属于自己的资产一样.所有继承是一个is-a的关系.java类继承用extends来表述继承关系.例如: class Manage

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

Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向对象的语言: 网络技能:Socket,FTP,Http,URL编程简单: 健壮性:避免指针错误使用: 安全性:构建防病毒防篡改系统: 体系结构中立:字节码: 可移植性: 解释性:可以解释任何移植了的字节码: 高性能: 多线程 动态性: 二.   Internet 和 Java Applet 在网页中

Java核心技术-4-对象与类

4 对象与类 4.1 面向对象程序设计概述 1 类 封装(数据隐藏):将数据和行为组合在一个包中,并对对象使用者隐藏数据的实现方式. 对象中的数据成为实例域,操纵数据的过程称为方法. 2 对象 对象的三个主要特性:对象的行为behavior,对象的状态state,对象标识identity.3 识别类 4 类之间的关系 依赖uses-a,一个类的方法操纵另一个类的对象 聚合has-a,一个类的对象(其数据域)包含另一个类的对象 继承is-a,类A扩展类B. 4.2 使用预定义类 1 对象与对象变量

[基础] Java目录(摘自Java核心技术·卷1 基础知识)

Java核心技术·卷1 基础知识(原书第9版) 第1章 Java程序设计概述 1.1 Java程序设计平台 1.2 Java"白皮书"的关键术语 1.2.1 简单性 1.2.2 面向对象 1.2.3 网络技能 1.2.4 健壮性 1.2.5 安全性 1.2.6 体系结构中立 1.2.7 可移植性 1.2.8 解释型 1.2.9 高性能 1.2.10 多线程 1.2.11 动态性 1.3 Java applet与Internet 1.4 Java发展简史 1.5 关于Java的常见误解

Java核心技术-5-继承

5 继 承 5.1 类.超类和子类 用super访问父类. 由于子类无法直接访问超类的私有域,所以子类对超类私有域的初始化必须调用超类的构造器. 如果子类的构造器没有显式调用超类的构造器,则自动调用超类的无参构造器. this用途:一是引用隐式参数,二是调用该类的其他构造器. super用途:一是调用超类的方法,二是调用超类的构造器. 一个对象变量可以指示多种实际类型的对象被称为多态.在运行时能够自动选择调用哪个方法被称为动态绑定. 1 继承层次 由一个公共超类派生出来的所有类的集合被称为继承层

java核心技术卷一

java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128-127       浮点类型 数据类型 字节数 取值范围 小数位数 float 4 10^-38~10^38和-10^-38~-10^38 小数位数6-7 double 4 10^-308~10^308和-10^-308~-10^308 15位小数         boolean 类型和char 类

Java核心技术 第六章 接口和内部类

Java核心技术  第六章  接口与内部类 接口: 任何实现Comparable接口的类都需要包含compareTo方法,并且这个方法的参数必须是一个Object对象,返回一个整数数值. 在Java SE 5.0中,Comparable接口已经改进为泛型类型. 接口中所有的方法自动的属于public.因此,在接口中声明方法时,不必提供关键字public. 接口中决不能含有实例域,也不能在接口中实现方法. 要让一个类使用排序服务,必须让它实现compareTo方法,因此必须实现Comparable

《Java核心技术卷I》观赏指南

Tomxin7 如果你有想看书的计划,但是还在纠结哪些书值得看,可以简单看看"观赏指南"系列,本文会简单列出书中内容,给还没有买书的朋友提供一个参考. 前言 秋招过去很久了,虽然在学校的时候有恶补java基础,但是都是为了面试而准备的,有些技术并没有进行全面的了解,再加上java现在疯狂的更新版本,很多新东西没有了解过,所以就打算再过一遍.java的书籍很多,也不想重复的看,所以就买了两本写的比较系统的<java核心技术卷I II>,本篇文章主要是想分享一下卷I,如果你正打

读书_重读java核心技术

读书_重读java核心技术 新建模板小书匠 6.接口,lambda与内部类 接口 传统接口的特性 接口绝不能含有实例域 接口在1.8之前绝不能含有方法实现 方法不能引用实例域 接口中可以含有常量 更专用的接口可以继承更抽象的接口,提供更多抽象方法 接口中的类全部修饰为public ,接口中的常量全部修饰为public static final 1.8接口新特性 接口中可以包含静态方法 接口中可以包含默认方法 默认方法冲突(待学习) clone 拷贝(待学习) lambda 回调:是一种常见的设计