定义
接口
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)抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。