您的位置:首页 - 教程 - Java - 正文
Java中关于继承、类、多态、接口的知识点

继承

含义:在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类

优点:1)代码的重用性;2)子类扩展父类的属性和方法;3)父类的属性和方法可用于子类;4)设计应用程序变得更加简单



继承的实现:



  关键字extends:继承其ted他类,可以继承public,protected





public class Salary extends Employee



super关键字:

  作用:调用父类中重写的方法

  注意:调父类构造器是第一句可执行语句;默认情况下子类会调用父类的无参构造器;做子类构造器初始化要先做父类构造器初始化

  格式:子类中调父类构造方法(super.方法名();) 调用父类中的构造器时(super(返回值1,返回值2...);)



  1)修饰类:不能被继承

   2)修饰方法:最终方法不能被重写

   3)修饰变量:变量值不能被修改



类的高级概念

访问修饰符:

  1)公开访问级别:public (可以被任何其他对象访问)

   2)受保护级别:protected(可以被同一包中的类或者其他包的子类都可以访问)

   3)默认访问级别:没有修饰符(可以被同一包中的其他类访问)

   4)私有访问级别:private(只有类本身可以调用)



封装:

  



静态初始化块:

  static{      {

    //语句 //非静态

  }         }

  实例初始化块,在类的对象每次实例化时执行一次,在构造器之前执行

  执行顺序:1)子类中相应的构造器被调用

       2)执行对super的调用,控制流程跳转回子类构造器

       3)父类构造器执行完,控制流程跳转回子类构造器

       4)在该子类构造器中的super()后面的任何语句执行前,实例化初始化块执行

       5)执行子类构造器中super()后面的语句



内部类:

  静态内部类:

class Outer{
static class Inner{
}

}
成员内部类:

class Outer{
class Inner{
}
}
局部内部类:

void f(){
class Inner{
void g(){
}
}
}

匿名内部类:
  new 类或者接口的名字(){

    //匿名内部类的主体

  }



多态和抽象

多态:

  含义:不同情形下的多种状态

  分类:静态多态(方法重载);动态多态(在运行中系统才能确定方法所指对象)

  步骤:1)编写父类派生子类

     2)子类当中重写父类方法

     3)使用多态(用父类数据类型引用子类对象)

     4)调用子类重写方法实现

  instanceof关键字:用于判断运行时对象的正真类型(引用 instanceof 类名)



抽象

  abstract关键字:

          放于class之前(抽象类),不能实例化父类对象,需要被继承后才能实现

          抽象方法:只有方法签名,没有方法主体;类也必须声明为抽象类;任何子类必须重写抽象方法,除非子类本身也是抽象



接口

  接口与类的不同:不能被实例化;不包含任何构造器;所有方法都是抽象的;不能包含实例成员变量;不能被一个类继承,只能被一个类实现;能够继承多个接口



接口声明

  关键字:interface

  格式:

public interface 接口名{
//任意数量的final,static成员变量
//任意数量的方法声明
}
  接口性质:1)接口默认是抽象的;2)接口中的每一个方法默认也是抽象的;3)默认访问级别是public



接口实现

  关键字:implements

 格式:public class 类名 extends 父类名 implements 接口名

  接口与接口之间可以多重继承,只能继承一个父类

  使用接口原则:1)使用接口解决多继承

         2)为外部类添加功能

         3)以面向对象角度考虑,将一个类与自身的特征和行为依赖于外部的可选的特征和行为分离,让类尽可能单纯

  接口优点:将设计和实现相分离,对外(调用者)隐藏实现(而通常调用者也不需要关心实现);面向接口编程是oop的核心


接口继承

  定义一个HockeyListener接口继承SportsListener接口:

public interface HockeyListener extends SportsListener{
//实现接口中的所有方法
}
  定义一个SportsListener类实现HockeyListener接口:

public class SportsListener implements HockeyListener {
//也需实现六个方法
}
  继承多个接口:

public interfasce HockeyListener extends SportListener,EventListener{
//需要实现三个接口中的方法
}


接口继承SportsListener和EventListener两个父接口

评论: