Java继承

前言

继承是面向对象语法的三大特征之一。继承可以降低代码编写的冗余度,提高编程的效率。通过继承,子类获得了父类的成员变量和方法。一个子类如何继承父类的字段和方法,如何修改从父类继承过来的子类的方法呢。今天我们开始学习有关Java继承的知识。

继承的使用方法

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
例如:我们建立一个人的类作为父类,这里面包括人的名字和身材。

private String name;
private int stature;
// 无参构造
public People() {
}
// 全参构造
public People(String name, int stature) {
this.name = name;
this.stature = stature;
}
//set get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStature() {
return stature;
}
public void setStature(int stature) {
this.stature = stature;
}

在Java中我们可以通过 extends 关键字让子类继承父类的属性和方法。
例如:我们想建立一个男女朋友类,他们都有名字和身材这个属性,那么通过继承我们就可以让People这个父类实现复用,这样就不用重复建类了。

public class GirlFriend extends People {
// 无参构造
public GirlFriend() {
}
// 全参构造
public GirlFriend(String name, int stature) {
super(name, stature);
}
// 煮饭方法
public void cook(){
System.out.println(super.getName() + "正在煮饭");
}
// 洗衣服方法
public void laundry(Clothes clothes){
System.out.println(super.getName() + "正在洗衣服");
}
}
public class BoyFriend extends People{
// 无参构造
public BoyFriend() {
}
// 全参构造
public BoyFriend(String name, int stature) {
super(name, stature);
}
// 赚钱方法
public void makeMoney(){
System.out.println(super.getName() + "正在赚钱");
}
// 陪女朋友逛街方法
public void doShopping(GirlFriend girlFriend){
System.out.println(super.getName()+ "正在陪" + girlFriend.getName() + "逛街");
}
}

测试类

public class TestGF {

	public static void main(String[] args) {
Girlfriend p1 = new Girlfriend("Marry",180);
p1.Cook();
p1.WashClothes();
boyfriend bf = new boyfriend("jack",180);
bf.MakeMoney();
bf.Company(p1);
} }

注意:

  • 子类不能选择性继承父类;
  • Java不支持多重继承,但一个类可以实现多个接口,从而克服单继承的缺点;
  • 构造方法不会被子类继承,但可以从子类中调用父类的构造方法。

Java继承实例解析的更多相关文章

  1. Java多线程-实例解析

    Java多线程实例 3种实现方法Java中的多线程有三种实现方式:1.继承Thread类,重写run方法.Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯 ...

  2. java继承实例。

    定义了一个点类point,然后线条类line继承了point类,正方形类Suare继承point类. package test; import javax.swing.*; public class ...

  3. java继承实例

    题目:1./*定义一个Person类,这个类的属性有:name.age.color类有构造方法给3个属性赋值类有run方法,能计算出十年后的年龄并输出.类有eat方法,能改变自己的name和color ...

  4. java继承实例基础

    总结:多态.重写.构造方法调用 package com.a; public class fsd { int a = 23; public fsd() { System.out.println(4444 ...

  5. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  6. java集合框架之java HashMap代码解析

     java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...

  7. Android开发之IPC进程间通信-AIDL介绍及实例解析

    一.IPC进程间通信 IPC是进程间通信方法的统称,Linux IPC包括以下方法,Android的进程间通信主要采用是哪些方法呢? 1. 管道(Pipe)及有名管道(named pipe):管道可用 ...

  8. Maven--多模块依赖实例解析(五)

    <Maven--搭建开发环境(一)> <Maven--构建企业级仓库(二)> <Maven—几个需要补充的问题(三)> <Maven—生命周期和插件(四)&g ...

  9. Java注解全面解析(转)

    1.基本语法 注解定义看起来很像接口的定义.事实上,与其他任何接口一样,注解也将会编译成class文件. @Target(ElementType.Method) @Retention(Retentio ...

随机推荐

  1. 简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别 ?

    MyISAM: 第 134 页 共 485 页不支持事务,但是每次查询都是原子的: 支持表级锁,即每次操作是对整个表加锁: 存储表的总行数: 一个 MYISAM 表有三个文件:索引文件.表结构文件.数 ...

  2. XSS攻击和CSRF攻击

    一.什么是XSS攻击 XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见于web应用程序中的计算机安全漏洞.XSS通过在用户端注入恶意的可运行脚本,若服务器端对用户输入不进 ...

  3. springboot-@EventListener简单用法

    @EventListener简单描述 简化我们编写监听类的步骤,不需要再继承ApplicationListener接口去实现onApplicationEvent了. 例子: @Component pu ...

  4. Spring 由哪些模块组成?

    以下是 Spring 框架的基本模块:第 393 页 共 485 页 Core module Bean module Context module Expression Language module ...

  5. 说出几条 Java 中方法重载的最佳实践?

    下面有几条可以遵循的方法重载的最佳实践来避免造成自动装箱的混乱. a)不要重载这样的方法:一个方法接收 int 参数,而另个方法接收 Integer 参 数. b)不要重载参数数量一致,而只是参数顺序 ...

  6. flink内存模型详解与案例

    任务提交时的一些yarn设置(通用客户端模式) 指定并行度                        -p 5 \ 指定yarn队列                     -Dyarn.appl ...

  7. PCB模块化布局系列之时钟电路设计(晶振、晶体)

    一.晶体在一个电路系统中, 时钟是必不可少的一部分.如人的心脏的作用,如果电路系统的时钟出错了,系统就会发生紊乱,因此在PCB 中设计,一个好的时钟电路是非常必要的.我们常用的时钟电路有:晶体.晶振. ...

  8. 使用el-tree-transfer的方式

    1.首先在组件中引入el-tree-transfer 2.然后在template中使用注册后的组件 参数:title 说明:标题 类型:Array 必填:false 默认:["源列表&quo ...

  9. WordPress 网站开发“微信小程序“实战(三)

    本文是"WordPress 开发微信小程序"系列的第三篇,本文记录的是开发"DeveWork+"小程序1.2 版本的过程.建议先看完第一篇.第二篇再来阅读本文. ...

  10. webpack+vue-cli+ElementUI+vue-resource 前端开发

    线上商城项目(电脑0环境)1.安装node.js (参考http://www.runoob.com/nodejs/nodejs-install-setup.html): 2.安装 webpack (全 ...