java 多态对象 封装方法 再调用 实例:学校有不同班的学生

为什么 要方法?因为我是个很懒的人~~~嘿嘿

实例题材是:一个学校有不同的班,班里自然是学生咯

我们要做的是:不同的班——有它不同的学习方法和睡觉方法~~~~~~~~~~~我最喜欢睡觉了   嘿嘿

这里我是分三个包 分别为:学生包 、方法包 、运行实现包

学生包

父类

package com.changgeng.student;

public abstract class Student {
	//定义一个私有的属性
	private String name = "";
	//抽象学习方法
	public abstract void study();
	//睡觉方法
	public void sleep(){
		System.out.println("睡觉");
	}
	//给私有的赋传出去
	public String getName() {
		return name;
	}
	//给私有的赋值
	public void setName(String name) {
		this.name = name;
	}
}
子类

package com.changgeng.student;

public class Beginner extends Student {
	{
		setName("java基础班");
	}
	//重写父类学习抽象方法
	@Override
	public void study() {
		System.out.println(getName()+"学习方法就是:多敲代码");
	}
	//重写睡觉方法
	@Override
	public void sleep() {
		System.out.print(getName()+"躺卧    ");
		super.sleep();
	}
	//子类特有的方法
	public void write() {
		System.out.println(getName()+"敲代码");
	}
}

子类

package com.changgeng.student;

public class Advanced extends Student {
	{
		setName("java 高编");
	}
	//重写父类抽象学习方法
	@Override
	public void study() {
		System.out.println(getName()+"学习方法是:多写实例");
	}
	//重写睡觉方法
	@Override
	public void sleep() {
		System.out.print(getName()+"做着   ");
		super.sleep();
	}
	//子类特有的方法
	public void write2() {
		System.out.println(getName()+"写工程");
	}
}

方法包

package wayStudent;

import com.changgeng.student.Advanced;
import com.changgeng.student.Beginner;
import com.changgeng.student.Student;

public class WayStudent {
	//学生共同的方法
	public void study(Student way){
	    //学习方法
		way.study();
		//睡觉方法
		way.sleep();
	}
	//子类特有的方法
	public void write(Student wei){
		if (wei instanceof Advanced) {
			Advanced a = (Advanced)wei;
			a.write2();
		}else if (wei instanceof Beginner) {
			Beginner b = (Beginner)wei;
			b.write();
		}
	}
}

运行包

package demo;

import com.changgeng.student.Advanced;
import com.changgeng.student.Beginner;

import wayStudent.WayStudent;

public class Demo {

	public static void main(String[] args) {
		//这里只要实例化一个方法类就可以 调用学生包里所有的对象
		WayStudent mStudent = new WayStudent();
		//高编班
		mStudent.study(new Advanced());
		mStudent.write(new Advanced());
		//基础班
		mStudent.study(new Beginner());
		mStudent.write(new Beginner());
	}

}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值