接口以及工厂模式

本文详细介绍了接口的定义、命名规则、使用方法及其在实际应用中的作用,强调了接口优先原则。接着,讨论了工厂模式的两种形式:简单工厂模式和工厂方法模式,对比了它们的优缺点,为在不同场景下的选择提供了指导。
摘要由CSDN通过智能技术生成

1.接口的定义与使用

1.1接口的定义

  定义接口使用关键字interface,接口就是抽象方法与全局常量的集合(纯粹版的抽象类)

interface IMyIterface{
   
//全局常量
public  static final  String MSG="test"//抽象方法
public  abstract void test(){
     }

  为什么说接口是纯粹版的抽象类?抽象类可以包含普通方法而接口只能包含抽象方法。

1.2接口命名:

  接口使用大写I开头;子类要想使用接口,用implements实现接口,一个子类可以同时实现多个接口(避免了单继承局限)

interface IMessage{
    
public static final String MSG = "I am a biter" ; // 全局常量
public abstract void print() ; // 抽象方法
}
 
interface INews {
    
public abstract String getNews() ; 
} 

class MessageImpl implements IMessage,INews {
   

子类的命名规范 :接口名为IMyInterface 则子类名为MyInterfaceImpl

1.3接口的使用规则

(1)接口中只允许public权限(不管是常量还是方法,都是public 权限,即使不写权限修饰符也是public)
接口中的数据成员默认为 public static final
接口中的方法默认为 public abstract
由于接口中只包含抽象方法和全局常量,所以全局常量可以不加 public static final,抽象方法也不加public abstract
(2)接口内不能有已经实现的方法。
(3)接口不能进行实例化,new
(4)接口可以可以使用extends继承多个接口(接口多继承)。此时的接口拥有了继承接口里面的抽象方法。

interface IA{
   
    void function1();
}
interface IB{
   
    void function2();
}
public interface IMessage extends IA,IB{
   //同时继承了IA,IB接口里面的抽象方法
}

(5)如果一个抽象类继承了接口,那么抽象类当中可以不实现接口的方法。但是如果在有一个普通类继承了此抽象类,那么此不同类一定要实现接口和抽象类里面的方法。

interface IA{
   
    void function1();//抽象方法
}
abstract class B implements IA{
   //可以不用覆写IA接口里的抽象方法
    public abstract void fun2();
}

class C extends B{
   

    @Override
    public void function1() {
   //必须覆写IA接口里的抽象方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值