`
缠小溪
  • 浏览: 24180 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

java 接口

 
阅读更多
/**
 * 关于接口的经典案例,用接口实现多态
 * 接口中定义的方法为抽象方法,实现接口的类必须实现接口中的所有的方法
 * 接口中的方法默认的是 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());
	}
}
/**
 * 从以上事例中可以看出,如果我要在添加一辆车的话只定义相关的类,然后再将对象传入就可以了
 * 接口应该作为一部分来理解还是作为全部来理解,或者他们应该具备这两个特性功能
 * */

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics