Java多态&多态的好处&多态的使用

一、多态
–1、概念
同一对象,在不同时刻具有不同的形态。
–2、特点
–前提: 发生继承关系 + 方法重写
–口诀1:父类引用指向子类对象
–Animal a = new Dog();
–口诀2:多态中,编译看左边,运行看右边
–编译看左边:想要保存成功,使用父类提供的功能
–运行看右边:想要结果,找子类
–3、入门案例
package com.xsd.multi;

	//这类用来 测试  多态 
	public class Test2_Multi {
		public static void main(String[] args) {
			//创建子类对象测试
			Dog d = new Dog();  
			d.eat();   //狗吃肉
			
			//创建多态对象测试
			Animal a = new  Dog() ;  //口诀1:父类引用  指向 子类对象,多态  / 向上转型 
			a.eat()  ; // 口诀2:编译看左边,运行看右边
			//2、编译看左边:意思是 想要保存成功 必须  使用 左边也就是父类 提供的功能!!!
			//3、运行看右边: 意思是   最终的执行结果 以子类的 实现为准!!
			//4、多态的好处:是用来统一调用的标准!!!标准就是父类!!!!如果父类没提供就不能用!!
		}
	}
	//1、多态前提:继承 + 重写
	class Animal{
		public void eat() {
			System.out.println("吃啥都行") ;
		}
	}
	class Dog extends Animal{
		//方法重写
		public void eat() {
			System.out.println("狗吃肉");
		}
	}

二、多态的好处
–1、可以把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程。
–2、统一调用标准,一切向父类看齐。
–3、提高了程序的扩展性和可维护性。

三、多态的使用
1、测试
package com.xsd.multi;
//这类用来测试 多态的使用
//1、成员变量:由于不存在重写,所以直接使用父类的
//2、成员方法:由于存在重写,所以调用了父类的 方法声明 ,使用了 子类的 方法体
//3、静态资源:由于不存在重写,所以直接使用父类的 方法声明 和方法体
public class Test3_Multi {
public static void main(String[] args) {
// 创建多态对象测试
Fu f= new Zi() ; //父类引用 指向 子类对象
//3、编译看左边,只要想用的功能,必须是父类提供的。
//运行看右边,多指发生了方法重写后,使用右边的也就是子类的方法体。
//1、成语方法的使用,一定是使用父类的(方法声明),但是,方法体,由于可以重写,所以用子类的方法体。
f.study(); //我爱java,
//2、成员变量的使用,一定是使用父类的,由于不存在重写,所以执行的也是父类的。
System.out.println( f.name ); // jack,
//3、静态方法,可以存在重写吗? – 不可以!!!
f.play(); //由于静态资源根本不存在重写,所以直接执行父类的方法声明和方法体。即使子类有一个和父类一模一样的方法也不是重写!!!
}
}
class Fu{
String name = “jack” ;
public void study() {
System.out.println(“爸爸正在学习”);
}
static public void play() {
System.out.println(“爸爸正在玩儿”);
}
}
class Zi extends Fu{
String name = “xiongda” ;
//方法重写
public void study() {
System.out.println(“我爱java”);
}
static public void play() {//这个是子类特有的,不是重写!
System.out.println(“儿子正在玩儿”);
}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值