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. Java中原子类的实现

    Java提供的原子类是靠sun基于CAS实现的,CAS是一种乐观锁.关于乐观锁与悲观锁. 原子变量类相当于一种泛化的volatile变量,能够支持原子的和有条件的读-改-写操作.AtomicInteg ...

  2. JVM——类加载器的双亲委派模型

    类加载器双亲委派模型,如下图所示: 双亲委派模型的工作过程 如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此 ...

  3. iOS NSString的常用用法

    //1.创建常量字符串. NSString *astring = @"This is a String!";   //2.创建空字符串,给予赋值. NSString *astrin ...

  4. Web安全测试学习笔记(Cookie&Session)

    一,Session:含义:有始有终的一系列动作\消息1, 隐含了“面向连接” 和“保持状态”两种含义2, 一种用来在客户端与服务器之间保持状态的解决方案3, 也指这种解决方案的存储结构“把××保存在s ...

  5. MultiMap

    类关系 ArrayListMultiMap.java Multimap <I> | | AbstractMultimap <A> Serializable <I> ...

  6. selenium python (四)键盘事件

    #!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #在实际测试过程中,有时候我们需要使用tab键将焦点转移到下一个需要操作 ...

  7. jQuery文本框(input textare)事件绑定方法教程

    jquery 的事件绑定已经用on替换了原来的bind,接下来为大家分享下bind的使用方法及input textare事件.目前1.7以上,jquery?的事件绑定已经用on替换了原来的bind,接 ...

  8. html --- SVG --- javascript --- 旋转矩形

    可缩放矢量图形(英语:Scalable Vector Graphics,SVG)是基于可扩展标记语言(XML), 用于描述二维矢量图形的一种图形格式.SVG由W3C制定,是一个开放标准. 在 Inte ...

  9. [翻译]Python——十年语言之冠

    最近我发现了这个PYPL——编程语言流行指数.它对各种语言的流行指标进行了二次发掘.作者指出TIOBE指数很可能不能反映出真实情况,归咎于一些编程语言的名称会导致误解.他引入了一些新术语,利用谷歌趋势 ...

  10. Scrum之Sprint物件

    产品订单(Product Backlog) 一个需求的列表. 一般情况使用用户故事来表示backlog条目 理想情况每个需求项都对产品的客户或用户有价值 Backlog条目按照商业价值排列优先级 优先 ...