黑马程序员__Java抽象类和多态总结

来源:互联网 发布:影视行业 知乎 编辑:程序博客网 时间:2024/05/21 10:12



  ------- android培训、java培训、期待与您交流! ----------

抽象类的总结

 A. 抽象类的定义

   抽象方法: 方法使用abstract修饰,没有方法体(大括号),末尾直接分号结束

   抽象类:类的定义上,用abstract修饰

 

 B. 抽象类的特点

   不能实例化对象 new 抽象类是错误的

   抽象类中,可以具有构造方法,也可以重载很多构造方法,但是构造方法第一行也是super()

   抽象类,可以没有抽象方法,但是不能建立对象

   抽象类,可以有普通方法,就是有大括号的方法,子类继承后直接使用

   抽象类,是这个继承体系中最共性的内容

 

 C. 抽象类的使用

   需要定义子类,继承抽象了,重写全部抽象方法,建立子类的对象

   如果子类重写了部分抽象方法,子类还是一个抽象类

 

 D. 抽象类的案例,Java学院 AbstractTest.Java

多态的总结

  好处:可以无限的扩展子类

  

  A. 父类或者接口指向自己的子类对象

     Fu f = new Zi();   NO ~~ Zi zi = new Fu();

  B. 调用方法的时候,运行的是子类重写后的方法

  C. 调用成员变量的时候,运行的是父类的成员变量

  D. 在多态中,只能调用子类父类共有方法,不能调用子类的特有方法!!多态的弊端

  E. 调用子类特有方法,必须进行类型的强制转换,将提升为父类类型的子类对象,转回子类的类型,手动!!

  F. 保证程序的安全性,避免发生类型转换异常ClassCastException,采用instancof运算符,进行健壮性判断

     变量 instanceof 类名 如果是返回真    类 instanceof 变量--语法错误

 


多态类的总结

多态中的实现的细节,很重要很重要

  多态中的成员变量:

      编译时期,如果父类中定义了这个成员变量,编译成功,否则编译失败

 运行时期,运行父类中定义的成员变量

 

  多态中的静态成员变量:

      编译时期,如果父类中定义了这个成员变量,编译成功,否则编译失败

 运行时期,运行父类中定义的成员变量

 

  多态中的非静态成员方法:

      编译时期,如果父类中定义了这个成员方法,编译成功,否则编译失败

 运行时期,运行子类重写后的方法

 

  多态中的静态成员方法:

      编译时期,如果父类中定义了这个成员方法,编译成功,否则编译失败

 运行时期,运行父类中定义的成员方法

  

  小规律:

    除了非静态的成员方法以外,编译运行都看父类

只有非静态的成员方法,编译看父类,运行看子类

非静态的成员方法,编译看左边,运行看右边

其他情况,编译运行全看左边


  ------- android培训、java培训、期待与您交流! ----------

0 0
原创粉丝点击