JAVA:抽象类与接口的区别&重载与重写&内存泄漏

2018-06-23  本文已影响0人  Sponge1128

1.抽象类与接口

1)抽象类

抽象类是对一种事物的抽象,即对类的抽象,表示同类事物的共性。通过继承使用抽象类,体现了强耦合关系。

2)接口
接口设计的目的是对类的行为进行约束,强制要求不同的类具有相同的行为。

public interface infa{  
  int a = 1;  
  void f();//抽象方法  
  default void f1(){//非静态加关键字default  
    ...  
  }  
  static void f2(){//静态方法  
    ...  
  }  
}  

2.重载与重写

1)重写(Override)
       重写是子类对父类允许访问的方法的实现过程进行重新编写,是父类与子类之间多态性的一种表现(类间多态),返回值和形参都不能改变。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。

方法重写规则:

2)重载(Overload)
       重载是在一个类里面,体现了一个类的多态性,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法/构造器都必须有一个独一无二的参数类型表;

方法重载规则:

3.内存泄漏

1)内存泄漏的原因
       内存泄漏是指无用对象持续占有内存或无用对象得不到及时的释放,从而导致内存空间的浪费称为内存泄漏。长生命周期的对象持有短生命周期的对象的引用就很可能发生内存泄漏,即根搜索进行可达性分析时目标可达,但实际目标已经无用。

2)造成内存泄漏的几种情况

3)如何检查内存泄漏?

上一篇 下一篇

猜你喜欢

热点阅读