c#和Java中的接口
使用场景:
在c#和Java中:
1.接口可以实现“多继承”(多实现),一个类只能继承自一个父类,但是可以实现多个接口。
2.接口解决了不同类型之间的多态问题,比如鱼与船不是同一类型,但是都能在水里“游泳”,只是方式不一样,要对“游泳”实现多态,就只能考虑接口。
c#中接口的使用语法:
public interface IFlyable { //接口里面能包含什么成员,接口里面只能包含【方法】 //方法、属性、索引器、事件 → “方法” //接口中的所有成员,都不能显示的写任何访问修饰符 //默认是public的访问修饰符 void SayHi(); void M1(string msg); //在接口中这样写表示是一个未实现的属性。 string Name { get; set; } //索引器 string this[int index] { get; set; } //事件 event Action MyEvent; }
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Java中接口的使用语法:
Java中接口要注意的事项 : 1. 接口是一个特殊的类。 2. 接口的成员变量默认的修饰符为: public static final 。那么也就是说接口中的成员变量都是常量。 3. 接口中的方法都是抽象的方法,默认的修饰符为: public abstract。 4. 接口不能创建对象。 5. 接口是没有构造方法。 6. 接口是给类去实现使用的,非抽象类实现一个接口的时候,必须要把接口中所有方法全部实现。
接口的定义格式:
interface 接口名{
}
实现接口的格式:
class 类名 implements 接口名{
}
1 //普通的铅笔类 2 class Pencil{ 3 4 String name; 5 6 public Pencil(String name){ 7 this.name = name; 8 } 9 10 public void write(){ 11 System.out.println(name+"沙沙的写..."); 12 } 13 } 14 15 16 //橡皮接口 17 interface Eraser{ 18 public void remove(); 19 } 20 21 22 //带橡皮的铅笔 23 class PencilWithEraser extends Pencil implements Eraser { 24 25 public PencilWithEraser(String name){ 26 super(name); 27 } 28 29 30 public void remove(){ 31 System.out.println("涂改,涂改...."); 32 } 33 } 34 35 36 class Demo 37 { 38 public static void main(String[] args) 39 { 40 PencilWithEraser p = new PencilWithEraser("2B铅笔"); 41 p.write(); 42 p.remove(); 43 } 44 }