java学习笔记(接口)

java学习笔记(高琪版)

oop面向对象

关于接口

接口类与抽象类的区别在于接口更加抽象,接口类中只定义了规范,所有由接口写的类必须按照接口的章程来写,实现其中提到的所有方法。
全面专业地实现了设计和具体实现的分离,大多工程都是面向接口的编程。

定义了两个接口,第一个有3个定义的变量,其修饰符为:public static final 。。。和两个方法。
第二个有1个定义的变量和一个方法。
所以在接口中定义的变量必须被 {初始化} 。

package cn.lyr.oop.testInterface;

public interface MyInterface {
    /*
     * 写一个接口,是可以进行网络活动的设备的统领
     */
    double Max_Price = 12000 ;//The blank final field price may not have been initialized
    double Min_Price = 200;
    String name = "InterNet";


    public void call();
    public double ave(double a,double b);
}

    interface ex{
    public static final int weight = 20;
    public void boom();
}

下面写了两个面向这两个接口的类;其中SamsungGalaxyNote7这个类实现了两个接口。
实现接口的类可以定义各自的变量并且不需要初始化。



class AppleAir implements MyInterface{
    @Override
    public void call() {
        // TODO Auto-generated method stub
        System.out.println("TCP/IP");
    }

    @Override
    public double ave(double a, double b) {
        // TODO Auto-generated method stub
        double sum = a+b;
        return sum;
    }

}


class SamsungGalaxyNote7 implements MyInterface,ex{ 
    String name = "SAM";//定义自己的变量
    @Override
    public void call() {
        // TODO Auto-generated method stub
        System.out.println("BOOM");
    }

    @Override
    public double ave(double a, double b) {
        // TODO Auto-generated method stub
        double mid = (a+b)/2;
        return mid;
    }

    @Override
    public void boom() {
        // TODO Auto-generated method stub
        System.out.println("BOOM! 当量为:"+weight);
    }

}

写一个测试类
注意:
*同多态一样,不能创建一个接口类
*如果用接口去new一个新的对象,如a1,它的本质是MyInterface,所以它只能用MyInterface中的变量和方法,即使在SamsungGalaxyNote7 中有BOOM()的方法,也无法调用。
*用SamsungGalaxyNote7 new一个新对象,如a2,则可以调用所有SamsungGalaxyNote7 中的特有变量和方法,也可以使用接口中的变量。

package cn.lyr.oop.testInterface;

public class test01 {
    public static void main(String[]args){
        MyInterface a1 = new SamsungGalaxyNote7();
        System.out.println(a1.name);//
        a1.call();
        System.out.println (a1.ave(3000, 6200));
        //a1.boom();  

        SamsungGalaxyNote7 a2 = new SamsungGalaxyNote7();
        System.out.println(a2.name);
        System.out.println("min price is:"+a2.Min_Price);
        a2.call();
        System.out.println(a2.ave(2000, 6200));
        a2.boom();


        MyInterface a3 = new AppleAir();
        System.out.println(a3.name);
        a3.call();
        System.out.println(a3.ave(3000, 12000));
        }
    }

println:
InterNet
BOOM
4600.0
SAM
min price is:200.0
BOOM
4100.0
BOOM! 当量为:20
InterNet
TCP/IP
15000.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值