定义

接口

1 接口定义

接口定义:接口是抽象类的变体(接口就是一些方法特征的集合------接口是对抽象的抽象)

 

 

2 接口使用

 

3 接口里的抽象方法

4 接口里的默认方法

上述解决接口升级是什么意思

5 接口里的私有方法

 

 

 

6 接口中的静态方法

 

7 接口中的常量

8 接口中不能有静态代码块

静态代码块介绍

一 般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情 况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用
比如main方法就必须是静态的 这是程序入口
两者的区别就是:静态代码块是自动执行的;
静态方法是被调用的时候才执行的.

 

区别很简单:
静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次;
非静态代码块,在创建对象的时候(即new一个对象的时候)执行,每次创建对象都会执行一次

 

相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,
    一般在代码块中对一些static变量进行赋值。
不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
    静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new
    一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。

9 接口中的代码运用

抽象类(抽象方法)

抽象类的意义在于思想上,而非内容上,这是面向对象的精华。如果我们觉得一大类“东西”,可以提取出一个“共同概念”,那么这个“共同概念”就可以是一个基类。如果这个“共同概念”本身没有现实存在,那么这个基类就可以是一个“抽象类”,至于抽象类有没有方法,取决于这个“共同概念”要不要做什么事情。如果它只是表达一些属性,其他的什么也不做,那仍然不影响它在概念上是一个合情合理的抽象类

抽象类定义

抽象类定义:声明方法的存在而不去实现它的类叫做抽象类(抽象类对某具体类型的部分实现------抽象类是对具体的抽象。)

抽象方法定义

 

不同点:  

1).抽象类可以有实现(包括构造函数),而接口不可以有任何实现,重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。

 

        接口中所有方法都必须是未实现的,都是抽象的。

 

2).抽象类中还以有成员变量(包含静态成员变量)、属性、常量和静态方法,并且他们可以是非公共的;

 

        而接口中不能有成员变量、常量、静态方法,只能有公共的属性。

 

3).抽象类可以从另一个类或者一个/ 多个接口派生;

 

而接口不能从另一个类派生却可以实现另一个或多个接口。

 

    4).一个.net 类只能从一个基类中派生即使这个基类是抽象类;然而一个.net 类可以实现多个接口。

      (但是如果从一个抽象类派生或者从一个/ 多个接口实现,则必须实现抽象类中抽象方法或接口中所有的方法)

相同点:

         1)、都不能被实例化;

         2)、包含未实现的方法声明;

         3)、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);

抽象类和接口的使用:

      1)如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单的方法来控制组件版本。

      2)如果创建的功能将在大范围的全异对象间使用,则使用接口。如果要设计小而简练的功能块,则使用接口。

      3)如果要设计大的功能单元,则使用抽象类.如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。   

      4)抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。