疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

继承与多态 Java


 

  1. 继承:以既有类为基础,派生出新类,达到代码重用的目的。

  封装:对类对象的数据成员进行访问控制,起到数据保护的作用。

  多态:对于同一个对象方法,输入不同,操作不同。

  ①动态匹配同名方法,使程序更灵活(重载)。

  ②多态在类体系中把接口(做什么)和实现(怎么做)分开→→子类覆盖。

  2. 创建子类的语法格式:

  [访问权限符] class <子类名> extends <父类名>

  3. 初始化子类时,先调用父类的构造方法,再调用子类的构造方法,这样可以保证子类从父类继承的成员可以进行正确的初始化。

  初始化子类时,子类空间不仅包括子类还包括父类可继承的内容。

  4. 子类this,父类super,可以调用相应方法、构造方法、成员变量, this()、super()需在第一行。

  5. 对象类型的转换

  ①向上转型。子类对象赋值给父类类型的变量,这是从具体类型到抽象类型的转换,它总是安全的。

  ②向下转型。将父类对象转化为子类对象,必须使用显示类型转换。

  Eg: mm a =(mm)b;

  注:在转换时,父类对象必须是子类对象的实例,否则会报错。可用instanceof 来进行判断一个实例对象是否属于一个类。

  6. 一个子类只能继承一个父类。

  7. 父类一般应提供无参的构造方法。

  8. 如果一个类有子类则最好为其设计一个无参的构造方法。

  9. 子类覆盖父类,必须要保证方法的返回值类型和方法头完全相同,且子类的修饰符可访问性不能低于父类。

  10. 初始化模块用于初始化类与对象。是一个用大括号括住的语句块。 运行顺序: 类静态变量> 静态代码块>实例变量>构造代码块>构造方法

  11. 构造代码块:用于对对象的共性内容进行初始化,优先级高于构造方法 { ... }(构造代码块)

  12. 静态代码块:用于对类进行初始化,只执行一次 static {...}(静态代码块)

  13. 覆盖必须 返回值、方法名、参数完全相同,而重载方法名相同,参数不同。