一、引言

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。

如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来的。在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类

继承中最常使用的两个关键字是extends和implements。

这两个关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系。

通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性。

所有Java的类均是由java.lang.Object类继承而来的,所以Object是所有类的祖先类,而除了Object外,所有类必须有一个父类。

我们可以通过extends关键字可以申明一个类是继承另外一个类而来的,格式如下:

// 父类
class Father {
private String name;
private int age; public void ball() { }
} // 子类
class Son extends Father { }

二、实例

1.在父类的ball()方法中添加如下语句:

System.out.println("我会打球");

2.新建一个类,添加main函数,在函数中实例化Son类

public static void main(String[] args) {
Son son=new Son();
}

3.当我们打出“Son.”的时候,智能提示会显示可以使用的方法,由于Son类继承了Father类,所以我们可以直接使用Father类里面的方法。

最后输出结果:

4.当然你也可以在子类中添加自己的方法,如果想要使用直接实例化之后调用即可

class Son extends Father {
public void Sing() {
System.out.println("我会唱歌");
}
}
public static void main(String[] args) {
Son son=new Son();
son.ball();
son.Sing();
}

三、函数重写

在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。

在继承的关系中,子类的方法名和父类的方法名相同,返回值类型相同,参数列表相同,叫做方法重写。

1.只需要在子类中调用父类方法,编译器会自动生成重写的函数。

@Override
public void ball() {
// TODO 自动生成的方法存根
// super:
// 1.作用就是用来子类调用父类的方法
// 2.如果实在构造方法中使用super,那么表示调用的是父类的构造方法。必须在第一行
// 3.必须在子类构造方法中才能调用父类构造方法
super.ball();
}

2.然后我们就可以在里面写自己想要的代码,在main函数实例化之后执行ball方法,结果

三、笔记

package com.hgd.study5;

/**
* 继承:一个类继另外一个类,被继承的类称之为父类或者基类,继承的类叫做子类或者派生类 子类继承父类,将继承父类的所有属性
* 子类继承父类,将继承父类的所属性和方法包含私有,但是不能访问,其他的都可以直接访问。子类具有拓展的功能
*
* 继承的作用:减少代码的冗余,提高了代码的重复利用
*
* 创建子类对象必先创建父类对象
*
* 方法重写的前提条件
* 方法重写:在继承关系中,子类的方法名和父类的方法名相同,而且需要返回值类型相同,参数列表相同,叫方法的重写
*
* @author HuTiger
*
*/
public class Inherit { public static class Father {
private String nameString;
int age; public Father() {
// TODO 自动生成的构造函数存根
System.out.println("Father");
}
public Father(int i) {
// TODO 自动生成的构造函数存根
System.out.println("Father="+i);
}
public int getAge() {
return age;
} public String getNameString() {
return nameString;
} public void setAge(int age) {
this.age = age;
} public void setNameString(String nameString) {
this.nameString = nameString;
} public void ball() {
System.out.println("我是" + getNameString() + "我会打球");
} } public static class Son extends Father { public Son() {
// TODO 自动生成的构造函数存根
super();//默认是存在的,而且必须是第一行,因为是调用父类的构造方法,父类必须先创建
System.out.println("Son");
}
public Son(String name) {
// TODO 自动生成的构造函数存根
this();
System.out.println("Son="+name);
}
public Son(int i) {
// TODO 自动生成的构造函数存根
this();//表示调用了第一个构造方法
System.out.println("Son="+i);
} /*
* 子类扩展的技能
*/
private void sing() {
System.out.println("我是" + getNameString() + "我会唱歌");
} }
}

Java学习笔记之:Java 继承的更多相关文章

  1. java学习笔记6--类的继承、Object类

    接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...

  2. java 学习笔记1 java语言概述及开发环境

    高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...

  3. Java学习笔记之—Java基础

    将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信

  4. Java学习笔记--通过java.net.URLConnection发送HTTP请求

    http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...

  5. Java 学习笔记 (三) Java 日期类型

    以下内容摘自:  https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...

  6. JAVA学习笔记之JAVA 对象引用以及赋值

      关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...

  7. 8.4(Java学习笔记)java脚本引擎(Rhino)

    一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...

  8. Java 学习笔记(4)——java 常见类

    上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...

  9. JAVA学习笔记--组合与继承

    JAVA一个很重要的功能就是代码的可复用性,代码复用可以大大提升编程效率.这里主要介绍两种代码复用方式:组合和继承. 一.组合 组合比较直观,只需在新的类中产生现有类的对象,新的类由现有类的对象组成, ...

  10. Java学习笔记:01面向对象-继承

    01面向对象-继承 一.java中的数据类型 1.基本数据类型:四类 八种 byte(1) boolean(1) short(2) char(2) int(4) float(4) long(8) do ...

随机推荐

  1. [大牛翻译系列]Hadoop 翻译文章索引

    原书章节 原书章节题目 翻译文章序号 翻译文章题目 链接 4.1 Joining Hadoop(1) MapReduce 连接:重分区连接(Repartition join) http://www.c ...

  2. [大牛翻译系列]Hadoop(11)MapReduce 性能调优:诊断一般性能瓶颈

    6.2.4 任务一般性能问题 这部分将介绍那些对map和reduce任务都有影响的性能问题. 技术37 作业竞争和调度器限制 即便map任务和reduce任务都进行了调优,但整个作业仍然会因为环境原因 ...

  3. php 图形验证码的3种方法

    生成图形验证码需要使用php GD库来生成,如果你没开户GD库我们需要在php.ini文件找到extension=php_gd2.dll 去掉前面的;就行了,然后重启apache 或iis环境即可 检 ...

  4. Windows 下 Composer 与 Laravel 4 的安装

    1.安装Composer Composer是PHP的依附经管对象之一,官方网站 http://getcomposer.org/ .它支撑多种安装体式格式,对于在win下做开辟的草来说,最便捷的体式格式 ...

  5. Python学习笔记1——人人都爱列表

    一些BIF函数在列表中的应用: Python 3.3.4 (v3.3.4:7ff62415e426, Feb 10 2014, 18:13:51) [MSC v.1600 64 bit (AMD64) ...

  6. WPF之Binding对数据的转换(第五天)

    Binding在Slider控件与TextBox控件之间建立关联,值可以互相绑定,但是它们的数据类型是不同的,Slider是Double类型,Text为String.原来,Binding有一种机制称为 ...

  7. 使用PowerShell 连接Azure

    除了使用门户登入外,还可以使用PowerShell的方式来连接Azure.首先要去下载组件 http://azure.microsoft.com/en-us/downloads/?rnd=1 http ...

  8. 安装mysql 5.5.14 报错

    提示cmake nod foundyum install cmake 原因是曾经服务器安装过mysql数据库Installing MySQL system tables...101223 14:28: ...

  9. 【个人笔记】002-PHP基础-01-PHP快速入门-02-PHP语言相关介绍输

    002-PHP基础-01-PHP快速入门 02-PHP语言相关介绍 1.PHP是什么 Hypertext Preprocessor超文本预处理器 是一种通用开源脚本语言 Personal Home P ...

  10. Team Homework #1 学长“学霸英语学习软件”试用

    简介: 一款英语单词记忆和管理辅助软件. 基本功能: 内置GRE词汇及其常考形态.Webster英语解释 单词发音功能 单词测验模式 简易词典功能 基本界面 词库单词读取 单词测试 优点: 1.界面简 ...