您的位置:首页 > 编程语言 > Java开发

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

2016-09-05 13:25 495 查看
为什么 要方法?因为我是个很懒的人~~~嘿嘿

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

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

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

学生包

父类



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();
}
}
}


[b][b]运行包

[/b][/b]

[b][/b]

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());
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: