Java中 多态Polymorphic的向上/向下转型 父类接收子类

创建一个Person父类


/**
 * 教师类和学生类的父类
 * 子类需要重写父类中的Eat()方法
 * @author it
 */
public class Person {

	//姓名
	private String Name;
	//年龄
	private String Age;
	
	//行为方法
	public void Eat(){
		System.out.println("吃饭");
	}
	
	//有参和无参构造方法
	public Person(String name, String age) {
		super();
		Name = name;
		Age = age;
	}

	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}

	//get 和 set 方法
	public String getName() {
		return Name;
	}

	public void setName(String name) {
		Name = name;
	}

	public String getAge() {
		return Age;
	}

	public void setAge(String age) {
		Age = age;
	}

	
	//重写toString方法
	@Override
	public String toString() {
		return "Person [Name=" + Name + ", Age=" + Age + "]";
	}
	
	
	
}

书写 一个Student类继承Person类

/**
 * Student类继承Person类中的Eat()方法并重写
 * 书写一个Studnet类里面的独有duyou()方法
 */
public class Student extends Person {

	// 重写父类中的Eat()方法
	@Override
	public void Eat() {
		System.out.println("学生正在兴奋的搞学习");
	}

	public void duyou() {
		System.out.println("学生类里面的独有方法");
	}

}

书写一个Teacher类继承Person类

j

/**
 * Teacher类继承Person类中的Eat()方法并重写
 * 书写一个Teacher类里面的独有duyou()方法
 */
public class Teacher extends Person{

	//重写Person父类中的Eat()方法
	@Override
	public void Eat() {
		System.out.println("老师正在疯狂的讲课");
	}
	
	public void duyou() {
		System.out.println("学生类里面的独有方法");
	}
}

书写一个测试类,使用向上转型和向下转型

/**
 * 学生类和教师类的测试类
 */
public class Test {
	
	public static void main(String[] args) {
		Student s = new Student();//创建Student类对象
		s.Eat();//调用Student类里面的重写方法
		Teacher t = new Teacher();//创建Teacher类对象
		t.Eat();//调用Teacher类里面的重写方法
		Person p = new Person();//创建Person类对象
		p.Eat();//调用Person类里面的重写方法
		System.out.println("------------------");
		//父类接收子类
		Person p2 = new Student();
		Person p3 = new Teacher();
		//父类调用子类里里面的重写方法
		p2.Eat();
		p3.Eat();
		System.out.println("------------------");
		//父类向下转型--->可以调用子类里面的独有方法
		Student s2 = (Student)p2;
		//父类向下转型--->可以调用子类里面的独有方法
		Teacher s3 = (Teacher)p3;
		s2.Eat();
		s2.duyou();
		
		s3.Eat();
		s3.duyou();
	}
}

运行结果

学生正在兴奋的搞学习
老师正在疯狂的讲课
吃饭
------------------
学生正在兴奋的搞学习
老师正在疯狂的讲课
------------------
学生正在兴奋的搞学习
学生类里面的独有方法
老师正在疯狂的讲课
学生类里面的独有方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值