首页 > 代码库 > 多态(三)

多态(三)

1.多态
  1.1多态:一种事物的多种形态
  1.2多态的表现
    行为(方法)多态:重写和重载
    引用多态(动态绑定):编译时的类型和运行时的类型不一致的这种现象叫动态绑定
      eg:父类=子类 Pet p=new Dog();
  1.3向上转型和向下转型
    向上转型:父类=子类
      eg:Pet p=new Dog();
    向下转型:子类=(子类)父类
      eg:Dog d=(Dog)p;
    注意:java.lang.ClassCastException:类型转换异常
      父类的运行时类型跟要转成子类的类型的不一致
    注意:引用多态存在继承关系


2.instanceof
  语法:对象A instanceof 类型B
    判断对象A的类型是否是类型B,如果是就返回true,否则返回false
    eg:d instanceof Dog


3.实现多态的两种形式
  a.使用父类作为方法形参实现多态
    eg:public void paly(Pet p){...};
  b.使用父类作为方法返回值实现多态
    eg:public Pet getPet(int type){...};

技术分享
1 package Day11四;
2 
3 public interface A {
4     public void sub();
5 }
A类
技术分享
1 package Day11四;
2 
3 public interface B {
4     public void sub();
5 }
B类
技术分享
 1 package Day11四;
 2 /**
 3  * 特殊的抽象类
 4  * 1.接口所有方法都是抽象方法
 5  * 2.接口只能定义常量
 6  * @author Administrator
 7  *
 8  */
 9 public interface MyInterface extends A,B{
10     public static final int A=10;
11     public void add();
12 }
父类
技术分享
 1 package Day11四;
 2 /*
 3  * 引用多态:父类去引用子类实例
 4  */
 5 public class Test {
 6     public static void main(String[] args) {
 7         int a=MyInterface.A;
 8         System.out.println(a);
 9     }
10 }
测试类

运行结果:

10

 

多态(三)