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. ubuntu开启emqx/nginx/uwsgi自启动服务

    一.emqx开机自启 a.首先在执行如下命令  vi /lib/systemd/system/emqx.service 创建了emqx.service文件然后在文件中写入如下内容 [Unit] Des ...

  2. 什么是可重入锁ReentrantLock?

    举例来说明锁的可重入性 public class UnReentrant{ Lock lock = new Lock(); public void outer(){ lock.lock(); inne ...

  3. dp求最长递增子序列并输出

    1 import java.util.ArrayList; 2 import java.util.Arrays; 3 import java.util.List; 4 5 /** 6 * Create ...

  4. flash的TotalFrames显示undefined

    通过js来操作flash的时候,获取到总帧数的是属性.TotalFrames,而不是属性TotalFrames().在asp.net中,js放在最后可以在一定程度上避免当前flash没有加载完,导致获 ...

  5. kbengine开源分布式游戏服务端引擎

    一款开源的支持多人同时在线实时游戏的服务端引擎,使用简单的约定协议就能够使客户端与服务端进行交互,使用KBEngine插件能够快速与(Unity3D.OGRE.Cocos2d.HTML5,等等)技术结 ...

  6. JavaScript作用域链与闭包的理解

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域 链的工作原理. 1. 全局作用域(Global Scope) (1)最外层函数和 ...

  7. idea 提示错误: 找不到或无法加载主类

    首先检查自己的jdk 配置是否正确,检查好遍发现没有问题,但是项目就是运行不起来...... 重启idea,问题解决.

  8. 何使用派生类指针指向基类,即downcast向下转型?

    基类指针指向派生类,我们已经很熟了.假如我们想用派生类反过来指向基类,就需要有两个要求:1)马克-to-win:基类指针开始时指向派生类,2)我们还需要清清楚楚的转型一下. if you want t ...

  9. Spring理解1 ioc

    Spring Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器(框架).   需要了解 ioc容器 IOC底层原理 IOC接口 BeanFactory Bean的作用域 IOC操 ...

  10. Spring配置数据源(连接池)

    1.数据源(连接池)的作用:为了提高程序的性能而出现的 2.数据源的原理: *事先实例化数据源,初始化部分连接资源 *使用连接资源时从数据源中获取 *使用完毕后将连接资源归还给数据源 使用c3p0的步 ...