飞道的博客

Java学习笔记14(接口+工厂模式)

420人阅读  评论(0)

接口

Java不支持多重继承。有了接口,就可以得到多重继承的效果。
接口(interface)是抽象方法和常量值的定义的集合。
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

接口的特点:

用interface来定义。
接口中的所有成员变量都默认是由public static final修饰的
接口中的所有方法都默认是由public abstract修饰的。
接口没有构造器。
接口采用多层继承机制。

定义Java类的语法格式:先写extends,后写implements

父类需要稳定和抽象

为什么要接口


哈哈哈哈

public abstract class Person1 {
	int age;
	String name;
	char  sex;
	
	public abstract void method();

}

/**
 * 会唱歌的会做饭的老师
 * @author jkjkjk
 *
 */
public class Cteacher extends Person1 implements Cooking, Singing{
	String course;
	
	
	//用set get
	public void setInfo() {
		super.age = 18;
		super.name = "wanba";
		super.sex = '男';
		
		
		this.course = "javajavajava";
	}
	
	
	@Override
	public void method() {
		// TODO Auto-generated method stub
		System.out.println("会唱歌的会做饭的老师");
		System.out.println("会唱歌的会做饭的老师的年龄"+super.age);
	}
	@Override
	public void fry() {
		// TODO Auto-generated method stub
		System.out.println("会唱歌的老师");
	}

	
	@Override
	public void sing() {
		// TODO Auto-generated method stub
		System.out.println("会唱歌的老师");
	}

}

public interface Singing {
	void sing();

}

/**
 * cook接口
 * @author jkjkjk
 *
 */
public interface Cooking {
	void fry();

}

工厂模式

源代码:

/**
 * 构建接口
 * @author jkjkjk
 *
 */
public interface BWM {
	void showInfo();

}
/**
 * 构建具体车的类
 * @author jkjkjk
 *
 */
class BWM3 implements BWM{
	
	@Override
	public void showInfo() {
		// TODO Auto-generated method stub
		System.out.println("这是宝马3");
	}
}

class BWM5 implements BWM{
	
	@Override
	public void showInfo() {
		// TODO Auto-generated method stub
		System.out.println("这是宝马5");
	}
}

class BWM7 implements BWM{
	
	@Override
	public void showInfo() {
		// TODO Auto-generated method stub
		System.out.println("这是宝马7");
	}
}
/**
 * 这是汽车生产工厂接口
 * @author jkjkjk
 *
 */
public interface BWMFactory {
	BWM productBWM();

}

/**
 * 实现具体车型的工厂
 * @author jkjkjk
 *
 */
class BWM3Factory implements BWMFactory{
	@Override
	public BWM productBWM() {
		// TODO Auto-generated method stub
		System.out.println("生产BWM3");
		return new BWM3();
	}
}

class BWM5Factory implements BWMFactory{
	@Override
	public BWM productBWM() {
		// TODO Auto-generated method stub
		System.out.println("生产BWM5");
		return new BWM5();
	}
}

class BWM7Factory implements BWMFactory{
	@Override
	public BWM productBWM() {
		// TODO Auto-generated method stub
		System.out.println("生产BWM7");
		return new BWM7();
	}
}
public class Test2 {
	public static void main(String[] args) {
		BWM b3 = new BWM3Factory().productBWM();
		b3.showInfo();
		
		BWM b5 = new BWM5Factory().productBWM();
		b5.showInfo();
		
		BWM b7 = new BWM7Factory().productBWM();
		b7.showInfo();
		
		
	}

}

通过工厂把new对象隔离了,通过产品的接口可以实现不同产品的实现类,实例的类名的改变不影响其他开发人员的编程

学而时习之


转载:https://blog.csdn.net/weixin_41710541/article/details/105240272
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场