Java小白入门200例82之Java实现多继承

Posted 编程界明世隐

tags:

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

作者简介

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

引言

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

导航

✪ Java小白入门200例系列目录索引
◄上一篇  81.Java接口
►下一篇  83.Java super关键字详解

概述

Java是单继承的, Java 不支持多继承,只允许一个类直接继承另一个类,即子类只能有一个直接父类,extends 关键字后面只能有一个类名。
一个类只能有一个直接父类,但是它可以有多个间接的父类。我们可以利用这个点来实现多继承。

通过extends间接继承来实现多继承

People 类

package demo.demo82;

/*
 * 父类
 */
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 + "在睡觉");
	}
}

Student 类

package demo.demo82;

/*
 * 学生类
 */
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;
	}
	//学习方法
	public void learn(){
		System.out.println(sNo+"号学生在学习知识");
	}
}

MiddleStudent 类

package demo.demo82;

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

测试类

package demo.demo82;

public class Test {

	public static void main(String[] args) {
		MiddleStudent midStudent = new  MiddleStudent("张三",16,"男","13812345678","001");
		midStudent.eat();
		midStudent.sleep();
		midStudent.learn();
	}
}

运行结果:

张三在吃饭
张三在睡觉
001号学生在学习知识

通过implements 来实现多继承

A接口

package demo.demo82;
public interface A {
    public void eat();
    public void sleep();
}
 

B接口

package demo.demo82;
public interface B {
    public void show();
}

C类实现这两个接口

package demo.demo82;
public class C implements A,B {
	@Override
	public void show() {
		System.out.println("show");
	}

	@Override
	public void eat() {
		System.out.println("eat");
	}

	@Override
	public void sleep() {
		System.out.println("sleep");
	}
}

利用extends和implements实现多继承

D类

package demo.demo82;

public class D {
	public void hahaha() {
		System.out.println("hahaha");
	}
}

改造上一个实例的C类,让它也extends D类

package demo.demo82;
public class C extends D implements A,B {
	@Override
	public void show() {
		System.out.println("show");
	}

	@Override
	public void eat() {
		System.out.println("eat");
	}

	@Override
	public void sleep() {
		System.out.println("sleep");
	}
	
	public static void main(String[] args) {
		C c = new C();
		c.show();
		c.eat();
		c.sleep();
		c.hahaha();
	}
}

运行:

show
eat
sleep
hahaha

这种也是经常在开发中常常用到的方案 extends和implements 并用。

小结

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

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

导航

✪ Java小白入门200例系列目录索引
◄上一篇  81.Java接口
►下一篇  83.Java super关键字详解

热门专栏推荐

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

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

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

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

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

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

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

Java小白入门200例109之Java Map集合详解