Java小白入门200例80之Java继承(extends)

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例80之Java继承(extends)相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  79.Java类的封装
►下一篇  81.Java接口

概述

继承是面向对象的三大特征之一。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

类的继承格式

class 父类 {
}

class 子类 extends 父类 {
}

为什么要用继承

有两个类,学生和老师,他们有很多共同的东西,比如姓名、年龄、性别、电话等属性,还有吃饭、睡觉等共同的方法。
也有些不同的东西,比如学生就有学生号、老师有老师号(就简单写一个)
学生类

package demo.demo80;

/*
 * 学生类
 */
public class Student {
	//属性用private
	private String name; // 姓名
	private int age; // 年龄
	private String sex; // 性别
	private String phone; // 联系电话
	private String sNo; //学号
	
	//构造方法
	public Student(String name,int age,String sex,String phone,String sNo){
		this.name=name;
		this.age=age;
		this.sex=sex;
		this.phone=phone;
		this.sNo=sNo;
	}
	//吃饭
	public void eat(){ 
        System.out.println(name+"在吃饭"); 
    }
	//睡觉
    public void sleep(){
        System.out.println(name+"在睡觉");
    }
}

老师类

package demo.demo80;

/*
 * 老师类
 */
public class Teacher {
	// 属性用private
	private String name; // 姓名
	private int age; // 年龄
	private String sex; // 性别
	private String phone; // 联系电话
	private String tNo; //教师号

	// 构造方法
	public Teacher(String name, int age, String sex, String phone,String tNo) {
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.phone = phone;
		this.tNo = tNo;
	}

	// 吃饭
	public void eat() {
		System.out.println(name + "在吃饭");
	}

	// 睡觉
	public void sleep() {
		System.out.println(name + "在睡觉");
	}
}

从这两段代码可以看出来,代码存在重复了,导致后果就是代码量大且臃肿。

设计People类

将学生类Student与老师类Teacher相同的东西抽取到People中

package demo.demo80;

/*
 * 父类
 */
public class People {
	// 属性用private
	private String name; // 姓名
	private int age; // 年龄
	private String sex; // 性别
	private String phone; // 联系电话

	// 构造方法
	public People(String name, int age, String sex, String phone) {
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.phone = phone;
	}

	// 吃饭
	public void eat() {
		System.out.println(name + "在吃饭");
	}

	// 睡觉
	public void sleep() {
		System.out.println(name + "在睡觉");
	}
}

继承至People类

学生类继承

package demo.demo80;

/*
 * 学生类
 */
public class Student extends People{
	//属性用private
	private String sNo; //学号
	
	//构造方法
	public Student(String name,int age,String sex,String phone,String sNo){
		super(name,age,sex,phone);
		this.sNo=sNo;
	}
}

老师类继承

package demo.demo80;

/*
 * 老师类
 */
public class Teacher extends People{
	// 属性用private
	private String tNo; //教师号
	
	//构造方法
	public Teacher(String name,int age,String sex,String phone,String tNo){
		super(name,age,sex,phone);
		this.tNo=tNo;
	}
}

测试一下

package demo.demo80;

public class Test {

	public static void main(String[] args) {
		Student student = new  Student("张三",19,"男","13812345678","001");
		student.eat();
		student.sleep();
	}
}

运行结果:

张三在吃饭
张三在睡觉

优点

  1. 实现代码共享,减少创建类的工作量,使子类可以拥有父类的方法和属性。
  2. 提高代码维护性和可重用性。
  3. 提高代码的可扩展性,更好的实现父类的方法。

小结

这节总结了“ Java继承(extends) ”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  79.Java类的封装
►下一篇  81.Java接口

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例80之Java继承(extends)的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例98之Java异常

Java小白入门200例95之Java匿名类

Java小白入门200例105之Java ArrayList类

Java小白入门200例107之Java LinkedList类

Java小白入门200例112之Java HashSet类

Java小白入门200例99之Java常见异常及处理