java接口的定义,实现,多继承和使用


活动地址:优快云21天学习挑战赛

定义

接口是一种特殊的抽象类,为Java提供新的功能

格式
//允许接口继承一个或多个接口,默认修饰符为public 
[public] interface 接口名称 [extends 父接口列表]{//父接口列表可以不止一个
     //默认数据成员只能是静态常量
    [public] [static] [final] 数据类型 成员变量=常量;
    //默认接口内只允许有抽象方法
    [public] [abstract] 返回值数据类型 方法名(参数)//英文括号
}               

如:
interface A{
    int a=1;//默认定义
    void shout();//默认方法定义 
}      
interface B extends A{
//继承后默认拥有shout()抽象方法
   void shout1();
}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

接口的实现和引用

1.接口的实现
使用关键字implements通过接口的特征创建新的类,用新的类实例化对象
接口不能直接实例化对象
2.接口的引用
接口作为一种引用类型被使用。
任何实现该接口的类实例化的对象都能存储在该接口类型的变量中。
通过该变量实现接口内的方法

实现格式
//实现接口的类是普通类,不是抽象类时,抽象方法需重写,是抽象类时则不需要重写
class 类名称 implements 接口列表
{

}

如:
public class Main  implements B{ //接口的实现
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //定义B接口的变量指向Main类的对象,用父类对象访问子类的成员
        B b=new Main();
       b.shout();//访问成员方法
       b.shout1();//访问成员方法
     }
    //子类覆盖父类方法时不可以缩小父类方法的访问权限范围
    //即默认使用父类的访问权限范围
    @Override
    public void shout() {//此处不加public 报错,即重写时需要显式使用修饰符
        System.out.println("A");;//表明继承成功
        System.out.println(+B.a);//表明继承成功
    }

    @Override
    public void shout1() {//此处不加public 报错
        System.out.println("B");
    }
}

###接口的继承
1.接口的多继承继承
一个子接口可以同时继承多个直接父接口,父接口之间采用英文逗号:“,”间隔
子接口继承父接口的所有变量和方法
2.接口实现的类的多重继承
一个类可以同时实现多个接口
注意:

  子接口和父接口出现同名常量,父接口的常量被隐藏
  出现同名方法,子接口的方法覆盖父接口的方法
interface A{
    int a=1;//默认定义
    void shout();//默认方法定义 
}      
interface C{
   String c ="常量";
   void shout2();
}
interface D{
   String d ="常量";
   void shout3();
}//接口的多重继承
interface B extends A,C{
//继承后默认拥有shout()抽象方法
   void shout1();
}     
//接口实现类的多重继承
public class Main  implements B,D{ //接口的实现
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //定义B接口的变量指向Main类的对象,用父类对象访问子类的成员
        B b=new Main();
       b.shout();//访问成员方法
       b.shout1();//访问成员方法
       b.shout2();
       Main m=new Main();
       m.shout3();
     }
    //子类覆盖父类方法时不可以缩小父类方法的访问权限范围
    //即默认使用父类的访问权限范围
    @Override
    public void shout() {//此处不加public 报错,即重写时需要显式使用修饰符
        System.out.println("A");;//表明继承成功
        System.out.println(+B.a);//表明继承成功
    }

    @Override
    public void shout1() {//此处不加public 报错
        System.out.println("B");
    }
     @Override
    public void shout2() {//此处不加public 报错
        System.out.println("C");
    }
    @Override
    public void shout3() {//此处不加public 报错
        System.out.println("D");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅花与竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值