为什么 要方法?因为我是个很懒的人~~~嘿嘿
实例题材是:一个学校有不同的班,班里自然是学生咯
我们要做的是:不同的班——有它不同的学习方法和睡觉方法~~~~~~~~~~~我最喜欢睡觉了 嘿嘿
这里我是分三个包 分别为:学生包 、方法包 、运行实现包
学生包
父类
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());
}
}