多态

			
			


1.多态:实例方法的动态绑定 动态联编后期绑定
 好处:可以写出维护的通用性代码 能应对需求的不断变化
 父类型 
2.如何编写一个多态?
   1.定义一个父类 (父类 接口 抽象类)
   2.定义一个子类
   (1)子类继承父类 重写父类的方法
   (2)子类继承抽象类 重写抽象类的方法
   (3)子类继承接口 实现接口的方法
   3.定义一个测试类方法 方法参数一定要是父类型 运行的时候 传入子类的对象
  //一份代码 多种形态 根据你传入的对象不同  对象的teach()方法
 3.绑定:给定一个方法名 通过该方法名决定到底执行那块代码的过程
        动态:绑定运行时候,决定到底执行哪块代码
 4. 1.静态方法有多态吗?
     没有 静态方法是静态绑定的  不管传那个对象 都是调用的父类型方法
    2.private 修饰的方法有动态码?
     没有  以为多态是建立在继承上的  private不能别继承
    3.final修饰的方法有多态吗?
     没有  因为final修饰的方法不能被重写
    4.属性有多态吗/?
     没有

多态代码:

public class Animal {
 public void run(){
	 System.out.println("动物在跑");
 }
}
	import java.util.Scanner;
		
		public class AnimalType {
		public  Animal test( String type){
			Animal animal;
			   if(type.equals("dog")){
				    animal=new Dog();
				   }else if(type.equals("cat")){
					    animal=new Brid();
				   }else{
					   animal=new Brid();
					  
				   }
			         return  animal;
			
		} 
			
			
public class Brid  extends Animal{
	
public void run(){
	System.out.println("鸟在飞");
}
}
public class Dog extends Animal {
	
  public void run(){
	
	  System.out.println("狗在跑");
  }
}
import java.util.Scanner;
		//多态的使用
		public class Test {
			public void test(Animal animal){
				animal.run();
			}
		   public static void main(String[] args) {
			   /*Animal animal=new Dog();
			   Test s1=new Test();
			   s1.test(animal);*/
			   String ch="y";
			   while(ch.equals("y")){
			   AnimalType a=new AnimalType();
			   System.out.println("输入你想要的动物类型");
			   Scanner scanner=new Scanner(System.in);
			   String type;
			   type=scanner.next();
			 
			   Test s1=new Test();
			   s1.test(a.test(type));
			   System.out.println("是否输入y/n");
			   ch=scanner.next();
			   }
			   System.out.println("结束");
		}






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值