Java-继承和多态and instanceof用法

核心内容:
微笑主要介绍instanceof的使用,和父类与子类的转换关系;
微笑<父类名> 父类对象=子类对象:表示父类的对象指向子类对象;这是向上转型;
微笑<子类名> 子类对象=(<子类名>)父类对象:表示子类对象指向父类,这是一种强制型转换


package my;
public class MyTest { 
	public static void main(String[] args){
		//eg 1:
		Animal a=new Animal(); 
		getShut(a); 
		//eg 2:
		Animal d=new Dog();//向上转型,自然转型:但是d不可访问子类的新方法。
		getShut(d); 
		//eg 3:
		Dog f=new Dog(); 
		getShut(f); 
		/* 1.eg1:表示编译时数据类型是Animal,运行时是Animal;; 
		     eg2和eg3效果一样,都表示编译时数据类型是Animal,而运行时是Dog;
		   2.a instanceof <类名> :关键字适用于判断a是否是该类的实例类或子类实例 
		*/
	} 
    public static void getShut(Animal an){ 
    	if(an instanceof Dog){
    		Dog t=(Dog) an;//强制型转换
            System.out.println("it is instance!") ; 
        } else{ 
        	System.out.println("No"); 
        }
    }
 };
class Animal{
	String name;
	void shut(){ 
		System.out.println("wowowo");
		}
};
class Dog extends Animal{
	String name;
	void shut(){ 
		System.out.println("ahahahahahaa"); 
	}
};

微笑instanceof用于判断该对象是否属于本类实例或子类实例,让我们再次强调一次

public class MyTest {
	  public static void main(String[] args[]){
		  Animal a=new Animal();
		  getShut(a);
		  
	  }
	  public static void getShut(Animal an){
		  if(an instanceof Dog){//显然。an是属于Animal类,即不是Dog类,也不是Dog的子类,它是Dog的父类Animal类
			System.out.println("it is instance!") ;
		  }
		  else{
			  System.out.println("No");
		  }
		  
	  }
}
class Animal{
		String name;
	    void shut(){
	    System.out.println("wowowo");
	    }
	}
class Dog extends Animal{
		String name;
	    void shut(){
	    System.out.println("ahahahahahaa");
	    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值