- 多态性
- 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()); }}