小言_互联网的博客

JAVA基础(第4天 接口与实现)

385人阅读  评论(0)

接口与实现

接口(接口声明和接口体)
使用关键字interface来定义
接口声明:interface 接口的名字
接口体:
 1. 可以没有任何内容(变量和方法)
 
 2. 可以有变量,但是这些变量必须是**常量**,默认被public static final 修饰,即接口里不可以有私有成员。
 3. 可以有方法,但是这些方法都是抽象方法,默认被public abstract 修饰

 4. 接口中只有常量(没有变量)和抽象方法(没有普通方法) 	
 5. 常量都是静态常量(static6. 接口不能被实例化的 	
 7. 抽象方法只有声明,不允许有方法体
 8. 接口没有构造函数,方法可以抛出异常
 
 9. 可以定义一个接口引用,但是必须执行其实现接口的子类对象
 
 10. 接口可以继承其他的接口(这里指单继承),通过extends来实现
 11. 接口可以实现类的多继承,通过implements来实现。
 
 12. 接口可以有类实现,但是这个普通类必须实现该接口的所有方法。如果这个类不实现该接口的所有方法,它必须是抽象类。
 
 13. 一个java源文件由类和接口组成
 
 

> 接口的访问权限修饰符

  1.public修饰的接口可以被任何一个类实现
  2.如果一个接口不加任何修饰,就称作友好接口,友好接口可以被与该接口在同一包中的类实现	

> 接口回调

ImpleCom是实现接口的类
ImpleCom object = new ImpleCom();
使用接口回调之后,object不仅可以调用ImpleCom中的方法,还可以调用接口中的方法但是当接口变量 com = object;com就可以调动被类实现的接口方法,这个过程才叫接口回调。

> 理解接口

接口变量中只能存放实现该接口的雷达的实例的引用。
内部类与异常类

> 断言

断言语句的语法格式:
	assert booleanExpression;
	assert booleanExpression:messageException;
	启用与关闭断言语句
	java -ea mainClass

JDK8新特性(默认方法和静态方法)
在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。由于这些修饰符都是默认的,所以在JDK8之前,下面的写法都是等价的。

JDK8及以后,允许我们在接口中定义static方法和default方法。

再定义一个接口的实现类:

  • 静态方法,只能通过接口名调用,不可以通过实现类的类名或者实现类的对象调用。
  • default方法,只能通过接口实现类的对象来调用。

内部类


Java类有两种重要的成员:成员变量和方法,实际上java还允许有一种成员:内部类

## **内部类:**

	1.内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外部类中的方法。
	2.内部类的类体中不可以声明成员变量和方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。	

## **匿名类 **

> 和子类有关的匿名类

	匿名类可以继承父类的方法也可以重写父类的方法
	使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类。
	匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变	量和static成员方法。
	由于匿名类是一个子类,但没有类名,所以在匿名类创建对象时,要直接使用父类的构	造方法。
	Bank是一个类
	new Bank() {
			匿名类的类体
		};

> 和接口有关的匿名类

	Computable是一个接口
	new Computable() {
			实现接口的匿名类的类体
		};

异常类

异常对象可以调用如下方法得到或输出有关异常的信息
public String getMessage();
public void printStackTrace();
public String toString();
Try-catch语句

知识积累

程序执行退出代码:System.exit(0);
Throw 和 Throws两个关键字
一个方法在生命时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象。
使用throw关键字抛出该异常对象。
程序必须在try-catch块语句中调用可能发生异常的方法,其中catch的作用就是捕获throw关键字抛出的异常对象。

转载:https://blog.csdn.net/qq_44102678/article/details/101780874
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场