接口

一、           接口(共7题)

34.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void

printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然

后写一个类Print实现接口InterfaceA和Interfac]’eB,要求printCapitalLetter()方法

实现输出大写英文字母表的功能,printLowercaseLetter()方法实现输出小写英文

字母表的功能。再写一个主类E,在主类E的main方法中创建Print的对象并赋

值给InterfaceA的变量a,对象a调用printCapitalLetter方法;最后再在主类E

的main方法中创建Print的对象并赋值给InterfaceB的变量b,对象b调用

printLowercaseLetter方法。

 

package lianxi;

public interface InterfaceA {
    void printCapitalLetter();


}
package lianxi;

public interface InterfaceB {
    void printLowercaseLetter();
}
package lianxi;

public class Print1 implements InterfaceA, InterfaceB {

    @Override
    public void printLowercaseLetter() {
        for (int i = 97; i < 123; i++) {
            System.out.print((char)i);
            
            
        }
           System.out.println();
    }

    @Override
    public void printCapitalLetter() {
        for (int i =65; i < 91; i++) {
            System.out.print((char)i);
            
        }
           System.out.println();
    }

}
package lianxi;

public class E {

public static void main(String[] args) {

     InterfaceA a=new Print1();
     InterfaceB b=new Print1();
     a.printCapitalLetter();
     b.printLowercaseLetter();
    
    
}
    

}

35.按要求编写Java程序:

(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);

(2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方

法时,要求计算1到n的和;

(3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口

方法时,要求计算n的阶乘(n!);

(4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现

接口的类。

package a;

public interface InterfaceA {
    int method(int n);

}
package a;

public class ClassA implements InterfaceA {

    public int method(int n) {
        int sum=0;
        for (int i = 1; i <=n; i++) 
        {            
            sum+=i;            
        }
        System.out.println("1+2+3+......+"+n+"="+sum);
        return sum;
    }

}
package a;

public class ClassB implements InterfaceA {

    public int method(int n) {
        int sum=1;
        for (int i = 1; i <=n; i++) 
        {            
            sum*=i;            
        }
        System.out.println(n+"!="+sum);
        return sum;
    }

}
package a;

public class E {

    public static void main(String[] args) {
        InterfaceA a=new ClassA();
        InterfaceA b=new ClassB();
        a.method(5);
        b.method(5);

    }

}

36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按

照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。

要求如下:

(1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中

有个“坚持党的领导”方法:void partyLeader()

(2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安

全生产”的抽象方法:abstract void safetyInProduction()

(3)该应用程序中有一个“省政府”类:Province,该类继承StateCouncil抽象

类并且实现CentralPartyCommittee接口;在实现partyLeader()方法时输出“我们

各省人民一定坚持党的领导!”;在重写safetyInProduction()方法时输出“我们各

省人民一定按照国务院的指示进行安全生产!”。

(4)该应用程序中有一个主类E,在主类E的main方法中创建Province类的对

象,来测试Province类的功能。

 

package a;

public interface CentralPartyCommittee {
    void partyLeader();

}
package a;

public abstract class StateCouncil{
    
    abstract void safetyInProduction();
    
}
package a;

public class Province extends StateCouncil implements CentralPartyCommittee {

    public void partyLeader() {
        System.out.println("我们各省人民一定坚持党的领导!");

    }

    @Override
    void safetyInProduction() {
        System.out.println("我们各省人民一定按照国务院的指示进行安全生产!");

    }

}
package a;

public class E1 {

    public static void main(String[] args) {
        Province p=new Province();
        CentralPartyCommittee a=p;
        StateCouncil b=p;
        a.partyLeader();
        b.safetyInProduction();

    }

}

 

37.看下图实现如下接口和类,并完成Adventure中的主方法。

 

 

package a;

public interface CanSwim {

    void swim();
}
package a;

public interface CanFly {
    void fly();

}
package a;

public abstract class ActionCharacter {
    public abstract void fight(String emp);
    
    
         public void speak(String s)
        {
             System.out.println(s);
        }
    

}
package a;

public class Hero extends ActionCharacter implements CanSwim, CanFly {
    private String name;
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Hero(String name) {
        super();
        this.name = name;
    }

    @Override
    public void fly() {
        System.out.println(name+"");

    }

    @Override
    public void swim() {
        System.out.println(name+"  游泳");

    }

    public void fight(String emp) {
        
        System.out.println(name+"  武器"+emp+"  戦斗");
    }

}
package a;

public class Adventure {

    public static void main(String[] args) {
        Hero hb=new Hero("超人");
        hb.swim();
        hb.fly();
        hb.fight("拳头");
        CanFly cf=hb;
        cf.fly();
        CanSwim cs=hb;
        cs.swim();
        ActionCharacter  ac=hb;
        ac.speak("为了正义");
        ac.fight("蛮力");

    }

    
}

38.利用接口做参数,写个计算器,能完成+-*/运算

(1)定义一个接口Compute含有一个方法int computer(int n,int m);

(2)设计四个类分别实现此接口,完成+-*/运算

(3)设计一个类UseCompute,含有方法:

public void useCom(Compute com, int one, int two)

此方法要求能够:1.用传递过来的对象调用computer方法完成运算

                2.输出运算的结果

(4)设计一个测试类,调用UseCompute中的方法useCom来完成+-*/运算

 

package b;

public interface Computer {
    int computer(int n,int m);

}
package b;

public class Jia implements Computer {

    @Override
    public int computer(int n, int m) {
        int jia;
        jia=m+n;
        System.out.println(m+"+"+n+"="+jia);
        return jia;
    }

}
package b;

public class Jian implements Computer {

    @Override
    public int computer(int n, int m) {
        int jian;
        jian=m-n;
        System.out.println(m+"-"+n+"="+jian);
        return jian;
    }

}
package b;

public class Cheng implements Computer {

    @Override
    public int computer(int n, int m) {
        int cheng;
        cheng=m*n;
        System.out.println(m+"*"+n+"="+cheng);
        return cheng;
    }

}
package b;

public class Chu implements Computer {

    @Override
    public int computer(int n, int m) {
        int chu;
        chu=m/n;
        System.out.println(m+"/"+n+"="+chu);
        return chu;
    }

}
package b;

public class UseComputer implements Computer {

    @Override
    public int computer(int n, int m) {
        
        return 0;
    }
    
    
    public void useCom(Computer com, int n, int m)
    {
        com.computer(n, m);
    }
    

}
package b;

public class TestComputer {

    public static void main(String[] args) {
    UseComputer m=new UseComputer();
    Jia a=new Jia();
    Jian b=new Jian();
    Cheng c=new Cheng();
    Chu d=new Chu();
    m.useCom(a, 3, 5);
    m.useCom(b, 3, 5);
    m.useCom(c, 3, 5);
    m.useCom(d, 3, 5);
    }

}

39.按要求编写一个Java应用程序程序:

(1)定义一个接口CanFly,描述会飞的方法public void fly();

(2)分别定义类飞机和鸟,实现CanFly接口。

(3)定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,

再定义一个makeFly()方法,其中让会飞的事物飞。并在main方法中调用该方法,

让飞机和鸟起飞。

 

package com.hry.test;

//代表会飞的事物
public interface CanFly {
    
    void fly();
    

}
package com.hry.test;

//飞机
//实现了会飞的事物的能力
public class Plane implements CanFly{

    @Override
    public void fly() {
        // TODO 自动生成的方法存根
        System.out.println("我是飞机,我能飞");
    }

    
}
package com.hry.test;

//
public class Bird implements CanFly{

    @Override
    public void fly() {
        // TODO 自动生成的方法存根
        System.out.println("我是鸟,我能飞");
    }

}
package com.hry.test;

public class TestFly {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        //实例化 飞机
        Plane p=new Plane();
        new TestFly().makeFly(p);
        
        //实例化 鸟
        Bird b=new Bird();    
        new TestFly().makeFly(b);
    }

        //让会飞的事物飞起来
        public void makeFly(CanFly p)
        {
            p.fly();
            
        }
    
}

 

原文地址:https://www.cnblogs.com/hanruyue/p/5901674.html