java基础接口练习
1、编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法voidprintCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然后写一个类Print实现接口InterfaceA和InterfaceB,要求printCapitalLetter()方法实现输出大写英文字母表的功能,printLowercaseLetter()方法实现输出小写英文字母表的功能。再写一个主类E,在主类E的main方法中创建Print的对象并赋值给InterfaceA的变量a,对象a调用printCapitalLetter方法;最后再在主类E的main方法中创建Print的对象并赋值给InterfaceB的变量b,对象b调用printLowercaseLetter方法。
public interface InterfaceA {
void printCapitalLetter();
}
public interface InterfaceB {
void printLowercaseLetter();
}
public class Print implements InterfaceA,InterfaceB {
@Override
public void printLowercaseLetter() {
char[] chr=new char[26];
char j=65;
for(int i=0;i<=25;i++){
chr[i]=j;
j++;
}
System.out.print("大写字母:");
for(char temp:chr){
System.out.print(temp);
}
System.out.println();
}
@Override
public void printCapitalLetter() {
char[] chr=new char[26];
char j=97;
for(int i=0;i<=25;i++){
chr[i]=j;
j++;
}
System.out.print("小写字母:");
for(char temp:chr){
System.out.print(temp);
}
System.out.println();
}
}
public class E {
public static void main(String[] args){
InterfaceA a =new Print();
a.printCapitalLetter();
InterfaceB b=new Print();
b.printLowercaseLetter();
}
}

2、按要求编写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方法中使用接口回调的形式来测试实现接口的类。
public interface InterfaceA {
void printCapitalLetter();
int method(int n);
}
public class ClassA implements InterfaceA{
@Override
public int method(int n) {
// 1到n的和
int sum=0;
for(int i=0;i<=n;i++){
sum+=i;
}
return sum;
}
@Override
public void printCapitalLetter() {
// TODO 自动生成的方法存根
}
public class ClassB implements InterfaceA{
@Override
public int method(int n) {
//n的阶乘
int sum=1;
for(int i=1;i<=n;i++){
sum*=i;
}
return sum;
}
@Override
public void printCapitalLetter() {
// TODO 自动生成的方法存根
}
}
public class E {
public static void main(String[] args){
InterfaceA a =new Print();
a.printCapitalLetter();
InterfaceB b=new Print();
b.printLowercaseLetter();
InterfaceA e=new ClassA();
InterfaceA ee=new ClassB();
System.out.println("1到100的和是:"+e.method(100));
System.out.println("10的阶乘是:"+ee.method(10));
}
}

3、中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。要求如下:
(1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中有个“坚持党的领导”方法:void partyLeader()
(2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安全生产”的抽象方法:abstract void safetyInProduction()
(3)该应用程序中有一个“省政府”类:Province,该类继承StateCouncil抽象类并且实现CentralPartyCommittee接口;在实现partyLeader()方法时输出“我们各省人民一定坚持党的领导!”;在重写safetyInProduction()方法时输出“我们各省人民一定按照国务院的指示进行安全生产!”。
(4)该应用程序中有一个主类E,在主类E的main方法中创建Province类的对象,来测试Province类的功能。
public interface CentralPartyCommittee {
void partyLeader();
}
public abstract class StateCouncil {
abstract void safetyInProduction();
}
public class Province extends StateCouncil implements CentralPartyCommittee {
@Override
public void partyLeader() {
System.out.println("我们各省人民一定坚持党的领导!");
}
@Override
void safetyInProduction() {
System.out.println("我们各省人民一定按照国务院的指示进行安全生产!");
}
}
public class E {
public static void main(String[] args){
//第三题
Province pro=new Province();
pro.partyLeader();
pro.safetyInProduction();
}
}

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


public interface CanSwim {
void swim();
}
public interface CanFly {
void fly();
}
public abstract class ActionCharacter {
abstract void fight(String emp);
void speak(String s){
System.out.println(s);
}
}
public class Hero extends ActionCharacter implements CanSwim,CanFly {
String name;
Hero(String name){
this.name=name;
}
@Override
public void fly() {
System.out.println(name+" I can fly!");
}
@Override
public void swim() {
System.out.println(name+" I can swim!");
}
@Override
void fight(String emp) {
System.out.println(emp);
}
}
public class Adventure {
public static void main(String[] args) {
Hero hb=new Hero("超人");
hb.swim();
hb.fly();
hb.fight("我要Fighting!");
hb.speak("I am superman!");
CanFly cf=hb;
cf.fly();
CanSwim cs=hb;
cs.swim();
ActionCharacter ac=hb;
ac.fight("我要打仗!");
ac.speak("我是超人,我无敌!");
}
}

5、利用接口做参数,写个计算器,能完成+-*/运算
(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来完成+-*/运算
public interface Compute {
int computer(int n,int m);
}
public class Jia implements Compute {
@Override
public int computer(int n, int m) {
return n+m;
}
}
public class Jian implements Compute{
@Override
public int computer(int n, int m) {
return n-m;
}
}
public class Cheng implements Compute {
@Override
public int computer(int n, int m) {
return n*m;
}
}
public class Chu implements Compute {
@Override
public int computer(int n, int m) {
int sum = 0;
try{
sum=n/m;
}catch(Exception e){
System.out.println("被除数不能为0");
}
return sum;
}
}
public class UseCompute {
public void useCom(Compute com, int one, int two){
System.out.println(com.computer(one, two));
}
}
public class Testcompute {
public static void main(String[] args) {
UseCompute uc=new UseCompute();
System.out.print("10+5=");
uc.useCom(new Jia(),10,5);
System.out.print("10-5=");
uc.useCom(new Jian(),10,5);
System.out.print("10X5=");
uc.useCom(new Cheng(),10,5);
System.out.print("10/5=");
uc.useCom(new Chu(),10,5);
uc.useCom(new Chu(),10,0);
}
}

java基础接口练习的更多相关文章
- Java 基础 接口和多态
接口 接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的 ...
- Java基础接口和抽象类区别(二)
抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则 ...
- java基础-接口
浏览以下内容前,请点击并阅读 声明 接口是java语言中的一个引用类型,和类一样,接口可以包含常量,方法签名,默认方法,静态方法和嵌套类型.含有方法主体的只有其中的默认方法和静态方法.接口不能被实例化 ...
- Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,
36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口 ...
- [Java 基础]接口
抽象类和抽象方法 抽象方法 在面向对象编程语言中抽象方法指一些只有方法声明而没有具体方法体的方法抽象方法一般存在于抽象类或接口中. java中,抽象方法就是以 abstract 修饰的方法,只需要声明 ...
- Java基础--接口和抽象类的区别
任何不谈使用方法的空理论都是耍流氓 使用场景 · 如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧(Java1.8中接口也可以这么做了) · 如果你想实现多重继承,那么你必须使用接口 ...
- java基础—接口概念
一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴 ...
- java基础——接口与抽象类的区别
(1)首先接口和抽象类的设计目的就是不一样的.接口是对动作的抽象,而抽象类是对根源的抽象. (2)对于抽象类,一个类只能继承一个抽象类.但是一个类可以同时实现多个接口. (3)接口是公开的,里面不能有 ...
- Java基础——接口
一:接口,英文称作interface,在软件工程中,接口泛指供别人调用的方法或者函数. 在封装与接口中,private关键字封装了对象的内部成员.经过封装,产品隐藏了内部细节,只提供给用户接口(int ...
随机推荐
- wpf 任务栏闪烁
[StructLayout(LayoutKind.Sequential)] public struct FLASHWINFO { public UInt32 cbSize; public IntPtr ...
- jQuery Mobile 过渡效果
jQuery Mobile 包含了允许您选择页面打开方式的 CSS 效果. jQuery Mobile 过渡效果 jQuery Mobile 拥有一系列关于如何从一页过渡到下一页的效果. 注释:如需实 ...
- asp.net MVC 源码分析
先上一张图吧 asp.net请求机制的图 by传智播客邹华栋老师 然后是 邹老师添加MVC请求过程的图 其实MVC 是在.netframework上加了一个过滤器 HttpModule 在C:\W ...
- HtDP读后感
我小时候很喜欢电脑. 不是听音乐,也不是玩游戏.纯粹是好奇:为什么一部冷冰冰的机器插上电源之后居然能如此强大.我每个月都期盼着订阅的电脑杂志快点到,到手以后总先上手试试里面的"奇淫巧技&qu ...
- 前端利器:SASS基础与Compass入门
SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让css看起来更像是一门语言,这种特性也被称为“cs ...
- oop第二章1知识点汇总
1 方法重写必须满足以下要求: 1 重写方法与被重写的方法必须方法名相同,参数列表相同. 2 重写方法与被重写的方法返回值类型必须相同或是其子类 3 重写方法不能缩小被重写方法的访问权限 2 重载和重 ...
- List集合 导出 Excel
public string CreateAdvExcel(IList<DocAdvInfo> lt) { StringBuilder builder = new StringBuilder ...
- 将src非空的属性注入到des中
package lizikj.bigwheel.common.vo.merchandise.util; import java.lang.reflect.Field; import lizikj.bi ...
- 【筛法求素数】【质因数分解】bzoj2721 [Violet 5]樱花
http://www.cnblogs.com/rausen/p/4138233.html #include<cstdio> #include<iostream> using n ...
- Xml序列化UTF-8格式错误
我需要得到一个类的Xml序列化后的字符串 using (System.IO.MemoryStream mem = new System.IO.MemoryStream()) { XmlTextWrit ...