接口的笔记

口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是
解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者
我们可以直接把接口理解为100%的抽象类,既接口中的方法必须全部是抽象方法
接口的特点
就像一个类一样,一个接口也能够拥有方法和属性,但是在接口中声明的方法默认是抽象的。(即只有方法标识符,而没有方法体)。

接口指明了一个类必须要做什么和不能做什么,相当于类的蓝图。
一个接口就是描述一种能力,比如“运动员”也可以作为一个接口,并且任何实现“运动员”接口的类都必须有能力实现奔跑这个动作(或者implement move()方法),所以接口的作用就是告诉类,你要实现我这种接口代表的功能,你就必须实现某些方法,我才能承认你确实拥有该接口代表的某种能力。
如果一个类实现了一个接口中要求的所有的方法,然而没有提供方法体而仅仅只有方法标识,那么这个类一定是一个抽象类。(必须记住:抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类)
一个JAVA库中接口的例子是:Comparator 接口,这个接口代表了“能够进行比较”这种能力,任何类只要实现了这个Comparator接口的话,这个类也具备了“比较”这种能力,那么就可以用来进行排序操作了。

以下是它的特点

1 接口不可以被实例化,这和抽象类一样,但抽象类中可以有构造器,而接口中不可以有构造器。
2接口可以实现“多继承“,一个实现类可以有多个接口。
抽象类中的抽象方法,可以不实现完,但要把”它“也定义成抽象方法,而接口必需全部实现。
3 接口用interface定义。
4 如果一个类实现了一个接口,者必须实现接口中全部的抽象方法。
5 接口中可以不写public abstract 和public static final,这两者在接口中会默认带上,接口中的常量因为带上
了final也因为是在接口中,所以接口中的常量不能被修改。
6.一个类实现接口用implements。

接下来是一个简单的防盗门代码

这是门的接口

public  interface  m {
    public abstract void km();
    public void gm();

}

这是锁的接口

 

public interface  suo  {
    public abstract void ks();
    public abstract void gs();

}
接下来是防盗门
public class fdm implements m,suo {
    @Override
    public void km() {
        System.out.println("开门");
    }

    @Override
    public void gm() {
        System.out.println("关门");

    }

    @Override
    public void ks() {
        System.out.println("开锁");

    }

    @Override
    public void gs() {
        System.out.println("关锁");

    }
}

最后再写一个测试类

public class test {
    public static void main(String[] args) {
        fdm a=new fdm();
        a.km();
        a.ks();
        a.gm();
        a.gs();
    }
}

这样就完成了

### PyCharm 打开文件显示全的解决方案 当遇到PyCharm打开文件显示全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值