千锋学习的第18天:接口

千锋学习的第十八天
今天学习了接口和接口回调

三、有如下代码
interface IA{
void ma();
}
interface IB extends IA{
void mb();
}
interface IC{
void mv();
}
interface ID extends IB ,IC{
void md();
}
1如果有一个类ClassE 实现ID的接口,如果不希望ClassE是抽象的,则需要实现那些方法
要实现这4个方法
void ma();
void mb();
void mv();
void md();
2 把下面的代码补充完整

public class TestClassE{
public static void main(String [] args){
IC ic=new ClassE();

	//调用ma方法
	ID id=newe ClassE();

	id.ma();
	//调用 mb方法
	id.mb();

	调用mc方法
	id.mc

	//调用md方法
	id.md

	}

}
3写出下面代码的输出结果( 都是true )

public class TestClassE{
public static void main(String args[]){
IC ic =new ClassE();
System.out.println(ic instanceif IA);
System.out.println(ic instanceif IB);
System.out.println(ic instanceif IC);
System.out.println(ic instanceif ID);
System.out.println(ic instanceif ClassE);
}
}


四、有如下代码请输出运行结果(输出结果4个(true)
interface IA{
void ma();
}
interface IB{
void mb();
}
class MySuper implements IA{
public void ma(){}
}
class MySub extends MySuper implements IB{
public void mb(){}
}
public class TestMain
public static void main(String args[]){
MySuper ms=new MySub();
System.out.println(ms instanceof IA);
System.out.println(ms instanceof IB);
System.out.println(ms instanceof MySuper);
System.out.println(ms instanceof MySub);
}


五.关于接口和抽象类下列说法正确的是(ACDE
A 抽象类可以有构造方法,接口没有构造方法
B 抽象类可以有属性,接口没有属性
c 抽象类可以有非抽象方法,接口中都是抽象方法
D 抽象类和接口都不能创造对象
E 一个类最多可以继承一个抽象类,但是可以实现多个接口


六。、写出下面代码的输出结果

interface Light{
void shine();
}
class RedLight implements Light{
public void shine(){
System.out.println(“Red Light shine in Red”);
}
}
class YellowLight implements Light{
public void shine(){
System.out.println(“Yellow Light shine in Yellow”);
}
}

class GreenLight implements Light{
public void shine(){
System.out.println(“Green Light shine Green”);
}
}
class lamp{
private Light light;
public void setLight(Light light)
{
this.light=light;
}
public void on(){
light.shine();
}
}
public class TestLamp{
public static void main(String[] args){
light[] ls=new Lighr[3];
ls[0] =new RedLight();
ls[1] =new YellowLight();
ls[2] =new GreenLight();
fot(int i=0;i<ls.length;i++){
lamp.setLighr(ls[i]);
lamp.on();
}
}
}
输出结果是
Red Light shine in Red
Yellow Light shine in Yellow
Green Light shine Green


七、写出下面代码执行结果
interface JavaTeacher{
void teach();
}
class TeahcerA implements JavaTeacher{
public void teach(){
System.out.println(“TeacherA teach java”);
}
}
class TeacherB implements JavaTeacher{
public void teach(){
System.out.println(“TeacherB teach Java”);
}
}
class school{
public static JavaTeacher getTeacher(int i){
if(i==0){
return new TeacherA();
}
else { return new TeacherB();
}
}
}
public class TestSchool{
public static void main(String [] args){
JavaTeacher jt=School.getTeacher(0);
jt.teach();
jt=School.getTeacher(10);
jt.teach();
}
}
执行结果是
TeacherA teach java
TeacherB teach Java


八填空
abstract class Animal{
public abstract void eat();
}
interface Pet{
void play();
}
class Dog extends Animal implements Pet{
public void eat(){
System.out.println(“Dog eat Bones”);
}
public void play(){
System.out.println(“play with Dog”);
}
}
class Cat extends Animal implements Pet{
public void eat(){
System.out.prntln(“cat eat fish”);
}
public void play(){
Sytem.out.println(“play with cat”);
}
}
class Wolf extends Animal{
public void eat(){
System.out.println(“wolf eat meat”)
}
}
public class TestMain{
public stataic void main(Sting args[]){
Animal as[] =new Animal[3];
as[0]=new Dog();
as[1]=new Cat();
as[2]=new Wolf();

	//调用as数组中所有动物的eat方法
for(int i=0;i<as.length;i++){
	System.out.println(as[i].eat());

}

	//调用as数组中所有的宠物paly方法
	as[0].paly();
	as[1].paly();

}
}



在原有chap6中的17基础之上,修改代码公司给SalaryEmployee每个月另外发放2000元加班费,给BasePlusSalesEmployee 发放1000元加班费改写源代码加入以上逻辑,并写一个方法,打印出本月公司总共发放了多少加班费。

在这里插入代public class Test {
   

			public static void main(String[] args) {
   
				HoursEmployee a1=new HoursEmployee();
				SalesEmployee a2=new SalesEmployee();
				BasePlusSalesEmployee a3=new BasePlusSalesEmployee(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值