【JAVA语法】04Java-多态性

  • 多态性
  • instanceof 关键字
  • 接口的应用

一、多态性

1.多态性的体现:
方法的重载和重写

对象的多态性

2.对象的多态性:

  • 向上转型: 程序会自动完成
    父类 父类对象 = 子类实例

  • 向下转型: 强制类型转换
    子类 子类对象 = (子类)父类实例

class A{
	public void tell1(){
		System.out.println("A--tell1");
	}
	
	public void tell2(){
		System.out.println("A--tell2");
	}
}


class B extends A{
	public void tell1(){
		System.out.println("B--tell1");
	}
	
	public void tell3(){
		System.out.println("B--tell3");
	}
}
public class test01 {
	
	

	public static void main(String[] args) 
	{
		//向上转型——系统自动完成
		B b = new B();
		A a = b;	//子类对象赋值给父类对象
		a.tell1();  //方法重写,output :B--tell1
		a.tell2();	//OUTPUT: A--tell2
		
		
		
		//向下转型——强制转换
		A a = new B(); //子类赋值给父类,部分匹配
		B b = (B)a;
		b.tell1();
		b.tell2();
		b.tell3();
		OUTPUT:
				B--tell1
				A--tell2
				B--tell3
	}
		
	}

二、instanceof关键字

2.1 用于判断一个对象到底是不是一个类的实例
返回值为布尔类型

class A{
	public void tell1(){
		System.out.println("A--tell1");
	}
	
	public void tell2(){
		System.out.println("A--tell2");
	}
}


class B extends A{
	public void tell1(){
		System.out.println("B--tell1");
	}
	
	public void tell3(){
		System.out.println("B--tell3");
	}
}
public class test01 {
	
	

	public static void main(String[] args) 
	{
		A a = new A ();
		System.out.println(a instanceof A);
		System.out.println(a instanceof B);
		
		A a1 = new B ();
		System.out.println(a1 instanceof A);
		System.out.println(a1 instanceof B);
	}
		
	}


	OUTPUT:
	true
	false
	true
	true

三、接口应用

interface USB{
	void start();
	void stop();
}
class C {
	public static void work(USB u ){
		u.start();
		System.out.println("Working");
		u.stop();
	}
}

class USBdisk implements USB{
	public void start(){
		System.out.println("the USB Disk is working");
	}
	public void stop(){
		System.out.println("the USB Disk stopped");
	}
}

public class inter01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		C.work(new USBDisk());
	}

}
posted @ 2017-05-18 10:02  Neo007  阅读(211)  评论(0编辑  收藏  举报