2020-08-13

第十一次课
一.
package com.hpe.demo3;

import com.hpe.demo4.C;
import com.hpe.demo4.D;

/**

  • 1.什么是接口?
  • (1).就是多个类之间的公共规范
  • (2)接口就是一个特殊的抽象类,接口里面的方法都是抽象方法
  • (3).接口解决了java单继承的鸡肋
  • 2.怎么定义一个接口
  • public interface 接口名{
  • }

*3.接口的特点
*(1)接口里面的属性都是常量,默认会给你加上“public static final”修饰
*(2)接口里面的方法都是抽象方法,默认会给你加上“public abstract”进行修饰
*(3)接口不能够实例化。
*(4)抽象类是继承,接口是用来实现的
*(5)一个类实现一个接口,必须实现这个接口里面所有的抽象方法(前提这个类不是抽象类)
*(6)一个类可以实现多个接口,中间使用逗号隔开
*(7)接口里面不能定义普通方法
*(8)接口没有构造方法
*(9)接口也可以继承接口,并且可以继承多个接口
*
*4.实现类
*(1)实现接口的类叫做实现类 class A implements B
*(2)如果一个类继承了一个父类同时需要实现一个接口,继承一定是在实现接口前面

  • class E extends D implements C

*/

//交通工具类
public interface Traffic {

// int age=10;//常量
// public static final int Age1=10;

public abstract  void start();//这是一个抽象方法

abstract void add();//这也是一个重新方法

public void run();//这是一个抽象方法

 void stop();//这也是一个抽象方法

// public void method(){
//
// }
//

}
二.
package com.hpe.demo3;

public class TestTraffic {

public static void main(String[] args) {

// Traffic t=new Traffic();

	//多态:接口的引用指向实现类的实例
	Traffic car=new Car();
	car.start();
	car.add();
	car.run();
	car.stop();
	
	//电动汽车
	Traffic evs=new Evs();
	evs.add();
	evs.start();
	evs.run();
	evs.stop();

}

}
三.
package com.hpe.demo3;

//电动汽车类
public class Evs implements Traffic {

@Override
public void start() {
	System.out.println("电动汽车启动了.......");
	
}

@Override
public void add() {
	System.out.println("电动汽车加速了........");
	
}

@Override
public void run() {
	System.out.println("电动汽车开始跑了.......");
	
}

@Override
public void stop() {
	System.out.println("电动汽车停止了............");
	
}

}
四.
package com.hpe.demo3;

//汽车类
public class Car implements Traffic,Oil {

@Override
public void start() {
	System.out.println("汽车启动了....");
	
}

@Override
public void add() {
    System.out.println("汽车加速了....");
	
}

@Override
public void run() {
	System.out.println("汽车开始跑了........");
	
}

@Override
public void stop() {
	System.out.println("汽车停止了...........");
	
}

@Override
public void addOil() {
	System.out.println("汽车加油...........");
	
}

}
五.
package com.hpe.demo3;

//针对于加油交通工具的接口
public interface Oil {

void addOil();//加油

}
另一个文件夹
一.
package com.hpe.demo4;

public interface A {
void f1();

}
二.
package com.hpe.demo4;

//我想让这个类去继承抽象类并且实现C接口
public class E extends D implements C {

@Override
public void f1() {
	// TODO Auto-generated method stub
	
}

@Override
public void f2() {
	// TODO Auto-generated method stub
	
}

@Override
public void f3() {
	// TODO Auto-generated method stub
	
}

@Override
public void f4() {
	// TODO Auto-generated method stub
	
}

}
三.
package com.hpe.demo4;

public abstract class D {
public abstract void f4();

}
四.
package com.hpe.demo4;

public interface C extends A,B {
void f3();

}
五.
package com.hpe.demo4;

public interface B {
void f2();

}
另另一个文件呀
一.
package com.hpe.demo5;

public class Circle {

private double radius;//半径

public Circle(double radius) {
	super();
	this.radius = radius;
}

public Circle() {
	super();
}

public double getRadius() {
	return radius;
}

public void setRadius(double radius) {
	this.radius = radius;
}

}
二.
package com.hpe.demo5;

public class ComparableCircle extends Circle implements CompareObject {

public ComparableCircle(double r){
	super(r);
}

//实现两个对象的比较
@Override
public int compareTo(Object o) {//o传过来的实参c2
	ComparableCircle c2=(ComparableCircle) o;//向下转型
	if(this.getRadius()>c2.getRadius()){//this代表当前对象,c1
		return 1;//代表当前对象大
	}else if(this.getRadius()<c2.getRadius()){
		return -1;//代表当前对象小
	}else{
		return 0;
	}
	
}

}
三.
package com.hpe.demo5;

public interface CompareObject {

//比较两个对象
public int compareTo(Object o);  

}
四.
package com.hpe.demo5;

public class TestInterface {
public static void main(String[] args) {

	//创建两个对象
	ComparableCircle c1=new ComparableCircle(5);
	ComparableCircle c2=new ComparableCircle(4);
	int result=c1.compareTo(c2);
	System.out.println(result);
}

}
最后一个文件吧
package com.hpe.demo6;

public class Computer {

//电脑开机
public void poweron(){
	System.out.println("电脑开机.....");
}

//电脑关机
public void poweroff(){
	System.out.println("电脑关机.....");
}

//电脑使用usb接口
public void use(USB usb){
	//1.打开usb接口
	usb.open();
	//判断usb接口插入是键盘还是鼠标
	if(usb instanceof Mouse){
		Mouse mouse=(Mouse)usb;
		mouse.click();
		mouse.doubleClick();
	}else if(usb instanceof KeyBoard){
		KeyBoard kb=(KeyBoard)usb;
		kb.input();
		
	}
	
	//2.关闭usb接口
	usb.close();
	
}

}
二.
package com.hpe.demo6;

//键盘
public class KeyBoard implements USB {

@Override
public void open() {
	System.out.println("打开键盘.....");
	
}

@Override
public void close() {
	System.out.println("关闭键盘......");
	
}

public void input(){
	System.out.println("键盘输入.......");
}

}
三.
package com.hpe.demo6;

//鼠标类
public class Mouse implements USB {

@Override
public void open() {
	System.out.println("打开鼠标....");
	
}

@Override
public void close() {
	System.out.println("关闭鼠标...");
	
}

public void click(){
	System.out.println("单击操作.....");
}

public void doubleClick(){
	System.out.println("双击操作......");
}

}
四.
package com.hpe.demo6;

public class TestComputer {

public static void main(String[] args) {
	
	//创建电脑对象
	Computer computer=new Computer();
	//电脑开机
	computer.poweron();
	//执行usb的操作
	USB mouse=new Mouse();//创建鼠标对象
	USB keyBoard=new KeyBoard();//创建键盘对象
	computer.use(mouse);
	
	//电脑关机
	computer.poweroff();

}

}
五.
package com.hpe.demo6;

//usb接口
public interface USB {

//打开USB
void open();

//关闭USB
void close();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值