《Java编程思想》笔记 第九章 接口

1.抽象类和抽象方法

1.1 抽象方法,仅有方法声明没有方法体

abstract class AbstractClass{
	abstract void f(); //没有 {}
	
}

1.2 只要有一个或者多个抽象方法,则必是抽象类,抽象类可以没有抽象方法。

1.3 抽象类内可以没有抽象方法,也可以只有实现的方法。

abstract class AbstractClass{
	
	void g(){
		System.out.println("hello");
	}
}

1.4 继承抽象类,要覆写抽象类内的所有抽象方法,提供方法体,如果不提供方法体那么这个子类也是抽象类,前面要将加关键字

2.接口

2.1 接口内没有任何具体实现,没有一个方法体。

2.2 接口中的方法默认public权限

2.3 接口中可以有域,但被隐性设定为 static 和  final

2.4 接口权限和类一样也有public,但必须在同名文件

3.协变类型:

  •  子类中被覆写的方法返回类型可以是父类方法返回值的子类型
class A {

}

class B extends A {

}

abstract class AbstractClass {

	abstract A g();

}

class C extends AbstractClass {
	//返回值类型是A类型
	// A g(){   
	// return null;
	// }
	//g() 返回值类型是A类型的子类型B也可以覆写
	B g() { 
		
		return null;

	}
}

4.多重继承

4.1 接口 extends 接口 , 接口,接口,. . .

4.2 类 extends 接口,接口,接口, . . .

4.3 类 extends 类   implements 接口,接口,接口, . . .

4.4 类 implements  接口,接口,接口, . . .

  • 实现多个接口,这些接口中应该避免有相同的方法名

5.嵌套接口

  •  接口可以嵌套在类中或者其他接口中

5.1 把嵌套的接口/类在A类外部看作A类的数据成员,在A类内部就看做正常的接口/类

5.2 类中嵌套的类或者接口权限可以是private

5.3 由于接口中的方法默认public,所以在接口中的接口不能被声明为private

5.4 嵌套中的 private接口 作用就是 让这个private接口中的方法无返回类型,不能向上转型

class A {
	public class Ain{
		
		 
		}
	//内部的类权限可以设定为private
	private class Ain2{  
		
		}
	public interface Aface{
		
	}
	private interface Aface2{
		void f(); //必须返回空值
	}
	
}

6.接口与工厂

  •     待补充

猜你喜欢

转载自blog.csdn.net/strawmi/article/details/79601506