JAVA OOP 第四章 接口

本文通过具体的Java代码示例,介绍了多态性和接口的概念及其应用。从简单的接口定义到类实现多个接口,再到抽象类与接口的结合使用,逐步展示了如何利用这些特性来提高代码的灵活性和复用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package cn.happy1.cn;

public class Data implements IFly{

	@Override
	public void code() {
		System.out.println("code");
		
	}

}

package cn.happy1.cn;

public interface IFly {
public void code();
}

package cn.happy1.cn;

public interface IWiter {
public void debug();
}

package cn.happy1.cn;

public class Some implements IFly,IWiter{

	@Override
	public void debug() {
		System.out.println("我会俩个 debug");
		
	}

	@Override
	public void code() {
		System.out.println("wo shu code");
		
	}

}

package cn.happy1.cn;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
   IFly[] i=new IFly[2];
   i[0]=new Some();
   i[1]=new Data();
   for(IFly item:i){
	   item.code();
	   
   }

	}

}

=======================================================================================================================================================================
package cn.happy2.cn;

public class Bird implements IFly{

	@Override
	public void Fly() {
	
		
	}

	@Override
	public void eat() {
	
		
	}

}

package cn.happy2.cn;

public interface IFly {
 void Fly();
 void eat();
}

package cn.happy2.cn;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

package cn.happy2.cn;

public interface Utility {
public void show();


}

==============================================================================================================================================
package cn.happy3.cn;

public abstract class Door {

	public abstract void open();
	public abstract void close();
}

package cn.happy3.cn;

public interface DoorBell {

	void takePictures();
}

package cn.happy3.cn;

public interface Lock {

	
	void lockup();
	void openLock();
}

package cn.happy3.cn;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
TheftproofDoor t=new TheftproofDoor();
t.close();
t.lockup();
t.takePictures();
t.openLock();
t.open();
	}

}

package cn.happy3.cn;

public class TheftproofDoor extends Door implements Lock,DoorBell{

	@Override
	public void lockup() {
		// TODO Auto-generated method stub
		System.out.println("插进钥匙,向左旋转3圈,锁上了,拔出钥匙");
	}

	@Override
	public void openLock() {
		// TODO Auto-generated method stub
		System.out.println("插进钥匙,向优旋转3圈,锁打开了,拔出钥匙");
	}

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("用力推,门打开了");
	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		System.out.println("使劲关,门关上了");
	}

	@Override
	public void takePictures() {
		// TODO Auto-generated method stub
		System.out.println("铃。。。。。。咔嚓。。。照片已储存");
	}

}

================================================================================================================================================
package cn.happy4.cn;

public class AptitudeHandset extends Handset implements Internet,PlayWiring{

public AptitudeHandset(String Brand,String type){
		
		super(Brand,type);
	}

	@Override
	public void inter() {
		// TODO Auto-generated method stub
		System.out.println("你已经启动了上网功能");
	}

	@Override
	public void Play(String incontent) {
		// TODO Auto-generated method stub
		System.out.println("音乐");
	}

	@Override
	public void sendinfo() {
		// TODO Auto-generated method stub
		System.out.println("发短信");
	}

	@Override
	public void call() {
		// TODO Auto-generated method stub
		System.out.println("打电话");
		
	}

	@Override
	public void info() {
		// TODO Auto-generated method stub
		System.out.println("手机类型为"+getType()+"手机品牌为"+getBrand());
	}

}

package cn.happy4.cn;

public class ComminHandset extends Handset implements PlayWiring{


	public ComminHandset(String Brand,String type){
		super(Brand,type);
		
	}
	@Override
	public void sendinfo() {
		// TODO Auto-generated method stub
		System.out.println("发短信");
	}

	@Override
	public void call() {
		// TODO Auto-generated method stub
		System.out.println("打电话");
	}

	@Override
	public void info() {
     System.out.println("手机类型为"+getType()+"手机品牌为"+getBrand());
	}

	@Override
	public void Play(String incontent) {
		// TODO Auto-generated method stub
		System.out.println("正在播放音乐"+incontent);
	}

}

package cn.happy4.cn;

public abstract class Handset {

	private String type;//类型
	private String Brand;//品牌
	
	public Handset(){
		
	}
public Handset(String type,String Brand){
	
	this.type=type;
	this.Brand=Brand;
}
	public abstract void sendinfo();

    public abstract void call();//打电话

    public abstract void info();//描述手机

public String getType() {
	return type;
}
public void setType(String type) {
	this.type = type;
}
public String getBrand() {
	return Brand;
}
public void setBrand(String brand) {
	Brand = brand;
}

}

package cn.happy4.cn;

public interface Internet {
	public void inter();
	
}

package cn.happy4.cn;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
Handset ha=new ComminHandset("G502c","索尼爱立信");

ha.info();
ha.call();
System.out.println();
AptitudeHandset hb=new AptitudeHandset("华为","dd");
hb.info();
hb.call();
hb.inter();
	}

}

package cn.happy4.cn;
/**
 * 播放能力
 *
 */
public interface PlayWiring {
	void Play(String incontent);
}

package cn.happy4.cn;

public interface TheakPictures {

	public void Photos();
}

========================================================================================================================================================================
package cn.happy5.cn;

public class Computer {

	CPU cpu;
	EMS ems;
	HardDisk harddisk;
	public Computer(){
	
	}

  
public void showinfo(){
	System.out.println("计算机的信息如下:"
			+ "CPU的品牌是:"+cpu.getCPUBrand()+",主频是:"+cpu.getFrequency()+" GHz "
					+ "硬盘容量是:"+harddisk.getCapacity()+"内存容量是:"+ems.getSize()+"G");
	  /* System.out.println("CPU的品牌是:"+cpu.getCPUBrand()+",主频是:"+cpu.getFrequency()+"GHZ");
		System.out.println("硬盘容量是:"+harddisk.getCapacity());
		System.out.println("内存容量是:"+ems.getSize()+"G");*/
}
public Computer(CPU cpu, EMS ems, HardDisk harddisk) {
	super();
	this.cpu = cpu;
	this.ems = ems;
	this.harddisk = harddisk;
}


public void getCapacity(HardDisk harddisk) {		
	this.harddisk=harddisk;
}
public void getSize(EMS ems) {		
	this.ems=ems;
}

public void getCPUBrand(CPU cpu) {
	this.cpu=cpu;
}

public void getFrequency(CPU cpu) {		
	this.cpu=cpu;
}



}

package cn.happy5.cn;

public interface CPU {
//品牌
	String getCPUBrand();
	//主频
	Float getFrequency();
}


package cn.happy5.cn;

public class CS implements CPU,EMS,HardDisk{

	@Override
	public int getCapacity() {
		// TODO Auto-generated method stub
		return 100;
	}

	@Override
	public String getEMSType() {
		// TODO Auto-generated method stub
		return "haha";
	}

	@Override
	public int getSize() {
		// TODO Auto-generated method stub
		return 1000;
	}

	@Override
	public String getCPUBrand() {
		// TODO Auto-generated method stub
		return "Inter";
	}

	@Override
	public Float getFrequency() {
		// TODO Auto-generated method stub
		return (float)3.8;
	}

}

package cn.happy5.cn;

public interface EMS {
//内存类型
	
	String getEMSType();
	//内存容量
	int getSize();
}

package cn.happy5.cn;

public interface HardDisk {
//获取硬盘容量大小
	int getCapacity();
}

package cn.happy5.cn;

public class Test {

	public static void main(String[] args) {
		
		System.out.println("计算机的信息如下:");
		CPU cpu=null;
		EMS ems=null;
		HardDisk harddisk=null;	
	     harddisk=new CS();
	     cpu=new CS();
	     ems=new CS();
		Computer computer=new Computer();
		computer.getCPUBrand(cpu);
		computer.getFrequency(cpu);
		computer.getSize(ems);
		computer.getCapacity(harddisk);
		computer.showinfo();
	}

}

package cn.happy6.cn;

public class A4Paper implements Paper {

	@Override
	public String getSize() {
		// TODO Auto-generated method stub
		return "A4";
	}

}

package cn.happy6.cn;

public class B5Paper implements Paper{

	@Override
	public String getSize() {
		// TODO Auto-generated method stub
		return "B5";
	}

}

package cn.happy6.cn;

public class ColorInkBox implements InkBox{

	@Override
	public String getColor() {
		// TODO Auto-generated method stub
		return "彩色";
	}

}

package cn.happy6.cn;

public class GrayInkBox implements InkBox{

	@Override
	public String getColor() {
		// TODO Auto-generated method stub
		return "黑白";
	}

}

package cn.happy6.cn;

public interface InkBox {

	public String getColor();
}

package cn.happy6.cn;

public interface Paper {
 public String getSize();
}

package cn.happy6.cn;

public class Printer {

	InkBox inkbox;
	Paper paper;


	public void print(){
		System.out.println("使用"+inkbox.getColor()+"墨盒在 "+paper.getSize()+"纸张上打印。");
		
	}
	public InkBox getInkbox() {
		return inkbox;
	}
	public Paper getPaper() {
		return paper;
	}
	public Printer() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Printer(InkBox inkbox, Paper paper) {
		super();
		this.inkbox = inkbox;
		this.paper = paper;
	}
	public void setPaper(Paper paper) {
		this.paper = paper;
	}
	public void setInkBox(InkBox inkbox) {
		this.inkbox = inkbox;
	}
	
}

package cn.happy6.cn;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
InkBox inkbox=null;
Paper paper=null;
Printer printer=new Printer();
inkbox =new GrayInkBox();
paper=new A4Paper();
printer.setInkBox(inkbox);
printer.setPaper(paper);
printer.print();

inkbox=new ColorInkBox();
paper=new B5Paper();
printer.setInkBox(inkbox);
printer.setPaper(paper);
printer.print();
paper=new A4Paper();
printer.setPaper(paper);
printer.print();

	}

}


========================================================================================================================================================

package cn.happy7.cn;

public interface Animal {
void shout();
}

package cn.happy7.cn;

public class Cat implements Animal{

	@Override
	public void shout() {
		System.out.println("W W!");
		
	}

}

package cn.happy7.cn;

public class Dog implements Animal{

	public void shout(){
		
		System.out.println("W W!");
	}
}

package cn.happy7.cn;

public class Pig implements Animal{

	public void shout() {
		System.out.println("pig");
	}

}

package cn.happy7.cn;

public class Store {

	public static Animal get(String choice){
		
		if(choice.equalsIgnoreCase("dog")){
			
			return new Dog();
		}else if(choice.equalsIgnoreCase("pig")){
			
		return new Pig();
		}
		else{
			
			return new Cat();
		}
	}
}

package cn.happy7.cn;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
Animal al=Store.get("pig");
al.shout();
	}

}

=======================================================================================================================================================
package cn.happy8.cn;

public class Dog extends Pet implements Eatable,FlyingDiscCatchable{
	
public Dog() {
		super();
		// TODO Auto-generated constructor stub
	}

	@Override
	public void catchingFlyDisc() {
		// TODO Auto-generated method stub
		super.love+=5;
		super.health-=10;
		System.out.println("狗狗"+super.name+"正在玩飞盘,与主人的亲密度:"+super.love+",健康值:"+super.health);
	}

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		super.health+=10;
		System.out.println("狗狗"+super.name+"正在吃饭,健康值:"+super.health);
	
	}
	public void print(){
		
		System.out.println("我的姓名为"+super.name+"与主人的亲密度:"+super.love+",健康值:"+super.health);
	}
	
}

package cn.happy8.cn;

public interface Eatable {
//吃饭功能
	public abstract void eat();
}

package cn.happy8.cn;

public interface FlyingDiscCatchable {
	//接飞盘功能
public abstract void catchingFlyDisc();
}

package cn.happy8.cn;

public class Penguin extends Pet implements Eatable,Swimmable{

	@Override
	public void swim() {
		// TODO Auto-generated method stub
		super.love+=5;
		super.health-=10;
		System.out.println("企鹅"+super.name+"正在游泳,与主人的亲密度:"+super.love+",健康值:"+super.health);
	}

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		super.health+=10;
		System.out.println("企鹅"+super.name+"正在吃饭,健康值:"+super.health);

	}
	public void print(){
		
		System.out.println("我的姓名为"+super.name+"与主人的亲密度:"+super.love+",健康值:"+super.health);
	}

	public Penguin() {
		super();
		// TODO Auto-generated constructor stub
	}
	
}

package cn.happy8.cn;

public abstract class Pet {
public String name;
public int health;
public int love;
public abstract void print();
	
	

}

package cn.happy8.cn;

public interface Swimmable {
	//游泳功能
public abstract void swim();
}

package cn.happy8.cn;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Dog dog=new Dog();
		Penguin penguin=new Penguin();
		penguin.name="啦啦";
		penguin.print();
		dog.name="闹闹";
		dog.print();
		dog.catchingFlyDisc();
		dog.eat();
		

     
	}

}

========================================================================================================


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值