接口
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
查看评论