继承,接口,抽象类

来源:互联网 发布:上海数据分析培训班 编辑:程序博客网 时间:2024/05/02 04:45

1. 封装(数据隐藏的具体方法)

隐藏类的实现细节,迫使用户去使用一个接口去访问数据使代码更好维护

       private,本类可见,可用。

       public,所有的可见

       protected,继承关系的子类和本包可见

       无修饰的(friendly)本包可见(package

防止继承:final 的类和方法

       不可扩展的类称作final

       final方法的作用:

              高效率

              安全

2. super & this

super的两个使用方法:

       对超类方法的调用;

       对超类构造函数的调用

this的使用方法:

       对本身方法的调用;

       对本身其他构造函数的调用

3. 重载 & 覆盖

重载的概念:

       拥有相同的方法名,通过其他的方式,在同一个作用域工作

       返回值重载

       参数重载

构造函数的重载

普通方法重载

 

方法的覆盖:

       子类中返回值和参数相同的方法将覆盖超类的方法

       相同名称,不同参数的被“简单覆盖”编译器将使用参数来决定具体所指。

 

方法重写(override):子类继承父类,并在子类中定义一个与父类中的方法名称和参数都相同的方法(返回类型可以不同),就会覆盖父类中的方法,这就是方法重写,并且“重写”只有在类继承的时候才会发生。

方法重载(overload):同一个类中有两个或两个以上的方法,方法名相同,参数列表不同,就构成方法重载。同时有继承关系的类,子类也可以重载父类的方法。

 

函数名一样 参数列表一样 只有返回值不一样 java编译系统仍会识别为是一个函数而报错

 

重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,

然后这些同名函数就成了不同的函数

     1、在同一个类中;

     2、方法名相同;

     3、参数个数或者参数类型不同【如果参数类型和个数相同,但类型顺序不同也是重载】

       (例:void overl(String s,double d) void overl(double dString s)也是重载

     4、与返回类型无关

 

Java的单继承性(不支持多重继承,需要的时候用接口来实现)

构造函数不能被继承

 

4. 抽象类

  1. 只给出方法头,而不必给出方法体。即方法的具体实现。
  2. 可以在方法和类名前面加上abstract关键字,表示这是一个抽象类。
  3. 抽象类中可以没有抽象方法,但类中有抽象方法,类必须声明为抽象类型。
  4. 抽象类可以有具体方法。
  5. 抽象类不能被实例化,就是不能创建对象。
  6. 继承抽象类的子类必须重写抽象类中的所有抽象方法。

 

5.接口

  1. 接口(interface)是抽象方法和常量值的定义的集合
  2. 只包含常量和方法的定义,而没有变量的方法的实现。可看作是特殊的抽象类。
  3. 接口中定义的属性必须是public statc final
  4. 接口中定义的方法必须是public abstract的,
  5. 因此这些修饰符可以部分或全部省略。因为不写也会自动添加这些修饰符
  6. 接口可以被多重实现
  7. 接口可以继承其他接口,并添加新的属性和抽象方法
  8. 接口间支持多重继承,类只能单继承(父类)多重实现(接口)

   interface A{ public void fa();}

   interface B{ public void fb(); }

    interface C extends a,b{ public void fc(); }

   class D impliments C{

       public void fa(){...}

         public void fb(){...}

         public void fc(){...} 

   }