zoukankan      html  css  js  c++  java
  • java中接口的概念及使用(补充final修饰符的使用)

    接口

    初期理解,可以是一个特殊的抽象类

    当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示


    class 用于定义类
    interface 用于定义接口


    接口定义时,格式特点:

    1、接口中常见的定义,一个是常量,一个是抽象方法
    2、接口中成员都有固定的修饰符
    常量:public static final 显示声明或默认声明(final见补充)
    方法:public abstract
    记住:接口中的成员都是public的 
    接口是不可以创建对象的,因为有抽象方法。
    需要被子类全部实现,否则子类也是抽象类

    接口实现多继承条件:

    定义接口可以解决JAVA中无法多重继承的问题。
    而且可以实现“多态” JAVA只支持单一继承,为弥补这一点,JAVA引入了接口这个概念,
    简单的说接口是对某个事物对外提供的一些功能 的声明。

    java只在接口与接口之间支持多继承。

    java没有多继承,除非是接口多继承,并且被继承的接口的约定不能产生冲突,

    比如C接口继承A接口和B接口,A接口有一个 void a(),B接口就不能有 int a()


    java支持多实现:

    接口可以被多实现,也是对多继承不支持的转换形式。java支持多实现

    接口与接口之间也可以继承。

    一个类可以继承类和实现接口同时进行

    示例代码:

    <pre name="code" class="java">interface Inter
    {
    	public static final int NUM=1;
    	public abstract void show();
    
    }
    
    interface InterA
    {
    	public abstract void method();
    }
    
    class Demo
    {
    	public void function(){}
    }
    class Test extends Demo implements Inter,InterA
    {
    	
    	public void show(){}
    	public void method(){}
    }
    
    interface A
    {
    	public void methodA(){}
    }
    
    interface B extends A
    {
    	public void methodB(){}
    }
    
    interface C extends B
    {
    	public void methodC(){}
    
    }
    
    class D implements C
    {
    	public void methodA(){}
    	public void methodB(){}
    	public void methodC(){}
    }
    
    class  InterfaceDemo
    {
    	public static void main(String[] args) 
    	{
    		Test t=new Test();
    		System.out.println(t.NUM);
    		System.out.println(Test.NUM);
    		System.out.println(Inter.NUM); //Interface编译后也会生成class文件,可以调用}
             }
    }

    
    

    
    

    补充:final修饰符的使用

    final的使用:

    fianl:最为一个修饰符;

    1、可以修饰类,函数、变量。

    2、被final修饰的类不能被继承,为了避免被继承,被子类的复写功能

    3、被final修饰的方法不能被复写

    4、被final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量,又可以修饰局部变量

    当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便与阅读

    而这个值不需要改变,所以加个final进行修饰。

    作为常量,常量的书写规范所有字母都大写,如果多个单词组成,单词间通过_连接

    5、内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量

    final示例代码

    class Demo
    {
    	final int x=3;
    	public static final double PI=3.14;//成为全局常量
    	final void show1()
    	{}
    	void show2()
    	{
    		fianl int y=4;
    	}
    }
    
    class SubDemo extends Demo
    {
    }
    class  
    {
    	public static void main(String[] args) 
    	{
    		System.out.println("Hello World!");
    	}
    }
    


  • 相关阅读:
    [转] 分代垃圾回收的 新旧代引用问题(原标题:Back To Basics: Generational Garbage Collection)
    javascript中数组总结
    mybatis 与 反射
    mybatis 与 缓存
    mybatis 与 日志
    mybatis与 Exception
    mybatis 与 xml
    Redis -- 03 持久化
    Redis -- 02 配置文件解析
    【翻译】Crafting a Next-Gen Material Pipeline for The Order: 1886
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4260840.html
Copyright © 2011-2022 走看看