模板和接口特点

模板

一个流程 一个体系 如果使用这个流程或者体系 只需修改其中的一小部分 大部分不需要动

下面举个例子:一个公司的找人流程

public class Demo01 {
	public static void main(String[] args) {
		LOStudy lsk= new LSK();
		lsk.study();
	}
}
abstract class LOStudy{
	//学习方法
	public void study() {
		System.out.println("报名应聘");
		//选择学科需要变化   声明一个方法
		//调用抽象方法
		chooseSubject();
		System.out.println("上岗工作");
	}
	//声明抽象方法
	public abstract void chooseSubject();
		
}
class LSK extends LOStudy{
	//重写父类的抽象方法
	@Override
	public void chooseSubject() {
		// TODO Auto-generated method stub
		System.out.println("应聘开发工程师");
	}
	
}
class PQ extends LOStudy{
	//重写父类的抽象方法
	@Override
	public void chooseSubject() {
		// TODO Auto-generated method stub
		System.out.println("测试员");
	}
	
}

报名应聘和上岗工作都是不需要动的流程

而求职者选择的工作不一样  所以只需要修改应聘的职位就可以了

模板运用了抽象类 和 继承

可以说模板和抽象类很相似


接口

狭义的:Java的接口 定义方式:interface 接口名 {};其中 interface 是关键词

广义的:一种规范 规范 需要来遵守;

接口特点:1.声明的变量不能改变 相当于一个常量2.接口没有构造方法  使用的是实现 关键词implements

3.接口只能实现不能继续  4.声明抽象方法的时候用 public abstract 

下面是接口的简单的书写样式

public class Demo03 {
	public static void main(String[] args) {
		InterB b= new InterBImpl();
		b.fun();
		System.out.println(InterB.num1);
	}
}
interface InterB{
	public static final int num1=10;
	public abstract void fun();
}
class InterBImpl implements InterB{
	public void fun() {
		System.out.println(num1);
		System.out.println("我是实现类的fun方法");
	}
}

抽象类和接口的不同

1.成员变量:

抽象方法可以用变量 也可以有常量

接口只有常量

2.使用方法

抽象类继承

接口实现

3.成员方法

抽象类有抽象方法 成员方法

接口只有抽象方法

4.构造方法

抽象类有构造方法

接口没有

类和类之间的关系


继承关系 单继承 可以多层继承

接口和接口的关系

可以多继续 单继承也可以

interface InterD{
	public abstract void fun1();
}
interface InterE{
	public abstract void fun2();
}
interface InterF extends InterD,InterE{
	
}
class InterFImpl implements InterF{

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

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


接口和类的关系

可以多实现

interface InterB{
	public abstract void fun1();
}
interface InterC{
	public abstract void fun2();
}
class TestA implements InterB,InterC{

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

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


猜你喜欢

转载自blog.csdn.net/shanwenfengyu/article/details/80328760