接口

/*
接口:初期理解,可以认为是一个特殊的抽象类
当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
class用于定义类
interface用于定义接口。


接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法。
2,接口中的成员都有固定修饰符。  
常量:public static
方法:public abstract
记住:接口中的成员都是public的。


接口:是不可以创建对象的,因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。
否则子类是一个抽象类。
类与接口之间是实现关系,类与类之间是继承关系,接口与接口之间是继承关系。
接口可以被类多实现。一个类可以实现多个接口。也是对多继承不支持的转换形式。
*/
interface Inter  //interface是class文件的一种特殊形式,编译时也生成class文件,加载到运行中。
{ //为了增加阅读性,不要省略。
public static final int NUM = 3;//省略了public static final,注意常量大写。
public abstract void show();//省略了public abstract ,观察没有方法体所以接口可以多实现,也就是多继承。
}


interface InterA
{
public abstract void method();
}


class Demo
{
public void function(){}
}


/*


class Test extends Demo implements Inter,InterA
{
public void show(){}
}
*/
interface A
{
}




interface B //extends A
{
void methodB();
}


interface C extends B ,A
{
void methodC();
}


class D implements C
{
public void methodA(){};//想要实现接口,必须加public
public void methodB(){};
public void methodC(){};
}




class Test implements Inter
{
public void show(){}//接口中的方法权限不一定比父接口权限大,可大可小。
}




class  InterfaceDemo
{
public static void main(String[] args) 
{
//子类覆盖接口中的方法后就可以进行实例化了。
Test t = new Test();
System.out.println(t.NUM);//对象调用成员。
System.out.println(Test.NUM);//类调用成员。因为Test已经实现了Inter,相当于里面已经有了NUM.
System.out.println(Inter.NUM);//这样写也可以,因为编译后有三个class文件。加载时静态NUM已经存在。
//以上三者中的任何一个,都不能这样做:t.NUM = 4;
}
}


/*编译是不会通过的,因为没有方法体.可以改成void show(){};或者如下变成抽象。
class Demo
{
void show();
}
*/


/*
abstract class Demo
{
abstract void show();
}
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值