Java_多态01_父类引用指向子类对象

F x=new S();

父类引用,指向子类对象
声明空间是F类型的,但在堆中创建的却是S类型的
父类:F
子类:S
父类引用:x
作用:在多态参数中起作用

多态关注的主要是方法,不关注属性

父类引用指向子类对象,子类要重写父类中相同的方法才有意义

package day12;
//多态的应用:
//需求:School 可以方法record,要求在record中可以调用到java讲师,python讲师的讲课方法。

class Teacher{
	private String name;
	private int age;
	public void introduce(String content){
		System.out.println("我的名字是"+this.name+"我上的课程是"+content);
	}
	public void teach(){
		System.out.println("上课了");
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
class JavaTeacher extends Teacher{
	public void teach(){
		super.teach();//在子类下可以通过super来调用父类下的方法。
		System.out.println("打开eclipse");
		System.out.println("上课...");
	}
} 

class PythonTeacher extends Teacher{
	public void teach1(){
		System.out.println("打开pycharm");
		System.out.println("上课...");
	}
} 
class School{
//	public void record(JavaTeacher j) {
//		j.teach();
//	}
//	public void record(PythonTeacher p) {
//		p.teach();
//	}
//	public void record(PythonTeacher p,JavaTeacher j) {
//		p.teach();
//		j.teach();
//	}
	public void record(Teacher teacher) {
		//Teacher teacher = new JavaTeacher();
		//Teacher teacher = new PythonTeacher();
		teacher.teach();
	}
}

public class 复习 {
	public static void main(String[] args) {
		JavaTeacher java=new JavaTeacher();
		PythonTeacher python=new PythonTeacher();
		School s=new School();
		s.record(java);
		s.record(python);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值