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 接口名{
}
//普通的铅笔类
class Pencil{
String name;
public Pencil(String name){
this.name = name;
}
public void write(){
System.out.println(name+"沙沙的写...");
}
}
//橡皮接口
interface Eraser{
public void remove();
}
//带橡皮的铅笔
class PencilWithEraser extends Pencil implements Eraser {
public PencilWithEraser(String name){
super(name);
}
public void remove(){
System.out.println("涂改,涂改....");
}
}
class Demo
{
public static void main(String[] args)
{
PencilWithEraser p = new PencilWithEraser("2B铅笔");
p.write();
p.remove();
}
}