欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 接口

程序员文章站 2022-06-13 21:32:05
...
/**
 * 关于接口的经典案例,用接口实现多态
 * 接口中定义的方法为抽象方法,实现接口的类必须实现接口中的所有的方法
 * 接口中的方法默认的是 public abstract
 * 接口中的变量默认的是public static常量
 * 接口中只有常量定义和public的abstract方法定义,所以一般在定义方法和常量的时候允许省略public abstract final
 * 常量可以被实现接口的类的对象调用,也可以用类名或者接口名调用
 * 如果声明的是public interface那么该接口能够被任何一个类使用,如果声明的是interface,那么友好接口只能在同一个包中的类使用
 * 父类使用了某个接口,子类也就继承了这个接口
 * 接口也可以被继承,子接口要实现父接口的所有的方法
 * 接口只关心功能,不关心实现
 * 前期绑定是在编译的时候就能够确定的类型,如果在编译的时候不能确定她的类型的话,那就是后期绑定
 * @author chanxiaoxi
 *
 */
//定义一个汽车的接口
interface Car{
	//获取汽车名
	String getName();
	//获得汽车售价
	int getPrice();
	
}
//定义宝马汽车类
class BMW implements Car{
	//实现Car接口的抽象方法getName()
	public String getName(){
		return "Car's name is BMW";
	}
	//实现Car接口的抽象方法getPrice()
	public int getPrice(){
		return 300000;
	}
}
//定义奇瑞QQ汽车类
class CherryQQ implements Car{
	public String getName(){
		return "Car's name is cherryqq";
	}
	public int getPrice(){
		return 20000;
	}
}

public class CarShop {
	private int money=0;//售车收入
	//麦车函数
	public void sellCar(Car car){//形参是接口的对象
		System.out.println("车型:"+car.getName()+";"+"价格:"+car.getPrice());
		money+=car.getPrice();//计算收入
	}
	//获取收入
	public int getMoney(){
		return money;
	}
	
	public static void main(String[] args){
		CarShop acarshop=new CarShop();
		acarshop.sellCar(new BMW());
		acarshop.sellCar(new CherryQQ());
	}
}
/**
 * 从以上事例中可以看出,如果我要在添加一辆车的话只定义相关的类,然后再将对象传入就可以了
 * 接口应该作为一部分来理解还是作为全部来理解,或者他们应该具备这两个特性功能
 * */