精华内容
下载资源
问答
  • 一个类实现一个接口的关键字
    千次阅读
    2021-02-26 17:02:18

    展开全部

    首先,需要了解一下java关于类继承和接口实现的基础理论知识,如下:e5a48de588b63231313335323631343130323136353331333361326361

    类继承:继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

    接口实现:接口实现在java中是一种特殊继承方式,接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements,其基本格式如下:

    [修饰符] class [implements 接口列表]{

    }

    然后,需要创建父类和定义接口,如下:

    创建父类:class Bird {

    int legnum = 2;

    void egg() {

    };

    }

    定义接口:interface Flyanimal{

    void fly();

    }

    最后,可以创建一个类来继承上面的父类和实现上面的接口,如下:class Pigeon  extends Bird implements  Flyanimal {

    public void fly(){

    System.out.println("pigeon  can fly");

    }

    public void egg(){

    System.out.println("pigeon  can lay  eggs ");

    }

    }

    更多相关内容
  • 个用中动脉中膜的主要成分是实现共产主义()现实的社会主义事业每向前推进一步,个接s关也就是向着共产主义走进一步。...个接s关下列不属于“奇经八脉”奇经八脉特点和作用的是阶级首先是一个...

    个用中动脉中膜的主要成分是

    类实实现共产主义()

    现实的社会主义事业每向前推进一步,个接s关也就是向着共产主义走进一步。

    902368.jpg

    口使实现共产主义是我们共产党人的最高理想。

    我们现在坚持和发展中国特色社会主义,键字就是向着最高理想所进行的实实在在的努力。

    个用必须以辩证思维把握和处理远大理想和共同理想的关系。

    类实Lucrezia Urbana是()。

    个接s关下列不属于“奇经八脉”奇经八脉特点和作用的是

    阶级首先是一个经济范畴,口使其次它最终是一个社会集团,这是对阶级的本质认识。()

    马基雅维利的思想为政治学的兴起奠定了学理基础。()

    键字舌骨上肌群不包括

    新柏拉图主义的标志是建立一所大学,叫做柏拉图学院。()

    个用助呼气的肌是

    下列关于北部文艺复兴的描述,类实错误的是()。

    彼特拉克切入到文艺复兴当中,个接s关首先接触的是罗马,而不是希腊。()

    意大利作为文艺复兴运动的发源地,口使最重要的原因是意大利是由贵族阶层知识分子统治。()

    键字人文主义者指的是研究古典文献的人。()

    《佛罗伦萨颂》主要描写了佛罗伦萨的风土人情。()

    《春之祭》表现了人与野蛮现实之间的斗争,《红菱艳》表现了爱与艺术之间的矛盾,二者同为献祭主题却从不同角度说明了精神与艺术与功利的现实之间存在着尖锐的矛盾。()

    展开全文
  • Java 接口关键字 interface

    千次阅读 2021-02-12 11:00:19
    interface这个关键字产生一个完全抽象的,它根本就没有提供任何具体的实现,它允许创建者确定方法名.参数列表和返回类型,但没有任何方法体,接口只提供了形式,而未提供任何具体实现一个接口表示:"所有实现了该特定...

    interface这个关键字产生一个完全抽象的类,它根本就没有提供任何具体的实现,它允许创建者确定方法名.参数列表和返回类型,但没有任何方法体,接口只提供了形式,而未提供任何具体实现

    一个接口表示:"所有实现了该特定接口的类看起来都像这样".接口被用来建立类与类之间的协议(某些面向对象语言用关键字protocol来完成这一功能.)

    要想创建一个接口,需要用interface关键字代替class关键字,就像类一样,可以在interface前添加public关键字(但仅限于该接口在与其同名的文件中被定义),如果不加public,则只有包访问权限,这样就只能在同一个包内可用,接口也可以包含域,但是这些域都隐式地是static和final的

    要让一个类遵循某个特定接口(或者是一组接口),需要使用implements关键字,它表示"interface只是它的外貌,但是现在我要声明它如何工作的."除此之外,它看起来很像继承

    恰当的原则是优先选择类而不是接口,从类开始,如果接口的必要性变的非常明确,那么就进行重构.

    //: interfaces/music5/Music5.java//Interfaces.

    packageobject;import static net.mindview.util.Print.*;enumNote{

    MIDDLE_C,MIDDLE_D,MIDDLE_F

    }interfaceInstrument {//Compile-time constant:

    int VALUE = 5; //static & final 可以声明域,但这些域都隐式地是static和final的//Cannot have method definitions:

    void play(Note n); //Automatically public//自动的是public

    voidadjust();

    }class Wind implementsInstrument {public voidplay(Note n) {

    print(this + ".play() " +n);

    }public String toString() { return "Wind"; }public void adjust() { print(this + ".adjust()"); }

    }class Percussion implementsInstrument {public voidplay(Note n) {

    print(this + ".play() " +n);

    }public String toString() { return "Percussion"; }public void adjust() { print(this + ".adjust()"); }

    }class Stringed implementsInstrument {public voidplay(Note n) {

    print(this + ".play() " +n);

    }public String toString() { return "Stringed"; }public void adjust() { print(this + ".adjust()"); }

    }class Brass extendsWind {public String toString() { return "Brass"; }

    }class Woodwind extendsWind {public String toString() { return "Woodwind"; }

    }public classMusic5 {//Doesn't care about type, so new types//added to the system still work right:

    static voidtune(Instrument i) {//...

    i.play(Note.MIDDLE_C);

    }static voidtuneAll(Instrument[] e) {for(Instrument i : e)

    tune(i);

    }public static voidmain(String[] args) {//Upcasting during addition to the array:

    Instrument[] orchestra ={newWind(),newPercussion(),newStringed(),newBrass(),newWoodwind()

    };

    tuneAll(orchestra);

    }

    }/*Output:

    Wind.play() MIDDLE_C

    Percussion.play() MIDDLE_C

    Stringed.play() MIDDLE_C

    Brass.play() MIDDLE_C

    Woodwind.play() MIDDLE_C*///:~

    继承和接口可以在同一个类同时使用

    //: polymorphism/Sandwich.java//Order of constructor calls.

    packagech08;interfaceFastFood{voidshow();

    }classMeal {

    Meal() { System.out.println("Meal()"); }

    }classBread {

    Bread() { System.out.println("Bread()"); }

    }classCheese {

    Cheese() { System.out.println("Cheese()"); }

    }classLettuce {

    Lettuce() { System.out.println("Lettuce()"); }

    }class Lunch extendsMeal {

    Lunch() { System.out.println("Lunch()"); }

    }class PortableLunch extendsLunch {

    PortableLunch() { System.out.println("PortableLunch()");}

    }public class Sandwich extends PortableLunch implementsFastFood{ //继承和接口可以在同一个类同时使用private Bread b = newBread();private Cheese c = newCheese();private Lettuce l = newLettuce();public voidshow()

    {

    System.out.println("pushing your sandwich order");

    }publicSandwich()

    {

    System.out.println("Sandwich()");

    show();

    }public static voidmain(String[] args) {newSandwich();

    }

    }/*Output:

    Meal()

    Lunch()

    PortableLunch()

    Bread()

    Cheese()

    Lettuce()

    Sandwich()pushing your sandwich order

    *///:~

    展开全文
  • 关键字接口、抽象

    Java知识点总结:想看的可以从这里进入

    4、 抽象类和接口


    4.1、 抽象类

    用 abstract 关键字修饰的类就是抽象类,用 abstract 关键字修饰的方法就是抽象方法。抽象方法只定义结构,而没有具体的实现,其实现是交给子孙类去实现的。有抽象方法的类必定是抽象类,但是抽象类可以有普通方法也可以用抽象方法。

    抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。所以抽象类需要有子孙类去继承实现其全部抽象方法继承抽象类的子类必须实现父类全部抽象方法,否则自身也要设置为抽象类。因为抽象方法本身没有任何意义,所以抽象方法必须要被重写去具体实现的(类的所有抽象方法都要实现)。

    抽象类存在的意义在于其设计性、复用性与扩展性。从开发的实际要求来讲,普通类尽量不要去继承另外一个普通类,而是去继承抽象类。

    在这里插入图片描述

    //将动物定义为抽象类,有抽象方法
    abstract class Animals {
        abstract void sound();
        
    }
    //Dog实现了抽象类,就必须实现抽象类的抽象方法
    class Dog extends Animals{
        @Override
        public void sound() {
            System.out.println("狗叫声");
        }
    }
    

    abstract修饰的抽象方法和某些关键字是有冲突的:

    1、final修饰方法时表示方法不能被子类重写,抽象方法必定要被子类重写,所以不能在一起使用。
    2、static是静态方法,属于类,而抽象方法需要被子类继承和实现,所以不能同用。
    3、native表示该方法要使用另一种依赖平台的编程语言实现,不存在子类继承的问题,所以不能使用。
    4、synchronized是线程同步,而abstract抽象方法只声明没有实现,所以不存在同步,不能同用。(可以在实现该方法的子类内使用)
    5、private的含义是私有,即不让自己外的其他类所知晓,只在自身内部调用,而抽象方法本身就是需要子类去实现的且是一个空方法,所以这两者是不能同用的
    

    4.2、接口

    我们知道,在Java中一个类只能去继承一个父类,那么这在某些时候就有很大的局限性了。所以就出现了接口(interface)这个概念,Java规定一个类可以去实现多个接口(单继承多实现)。

    接口是对行为的抽象,内部不能有具体的方法(是由全局常量和公共的抽象方法所组成),接口无法被实例化,类一旦实现接口就要实现接口内的所有方法。

    接口是为了提供服务,比如家中的插座,它只是提供了一个规范,不关心是那种电器使用,电器只要符合这个插座的接口,就可以使用插座,接通电源。

    在这里插入图片描述

    • 接口不能用于实例化对象,内部没有构造方法。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
    • JDK 1.8 以后,接口里可以有静态方法和方法体。JDK 1.8 以后,接口允许包含具体实现的方法,该方法称为"默认方法",默认方法使用 default 关键字修饰。
    • 接口中可以有变量和方法,并且接口中的变量会被隐式的被public static final来修饰,并且只能用public static final来修饰,方法会隐式的被public abstract来修饰,并且只能用来public abstract来修饰。
    • 接口不是被类继承了,而是要被类实现。一个类可以实现多个接口
    //接口的声明
    [public] interface 接口名 [extends 其他接口]{
    	//变量
        //方法
    }
    

    拿电脑来说,电脑上有很多的接口,其中USB接口,键盘、鼠标、耳机等,只要符合USB接口的规范就可以连接到电脑上。对比来说接口的功能就类似于USB,定义好后就只要符合了接口的规范,就可以使用

    • 定义一个电脑

      public class Computer{
          //电脑定义一个USB的接口,只要符合USB接口就能在电脑上工作
          private USB usb;
          public void setUsb(USB usb){
              this.usb = usb;
          }
          public void wook(){
              if(usb != null){
                  System.out.println("USB设备正在工作");
                  usb.write();
              }
          }
      }
      
    • 定义USB接口

      public interface USB {
          void read();	//读写方法
          void write();
      }
      
    • 定义键盘鼠标,实现USB接口

      //定义一个键盘一个鼠标,符合USB接口的规范
      public class Keyboard implements USB {
          public void Knock(){
              System.out.println("敲击键盘");
          }
          @Override
          public void read() {}
          @Override
          public void write() {
              this.Knock();
          }
      }
      
      public class Mouse implements USB {
          public  void rClick(){
              System.out.println("点击右键");
          }
          public void lClick(){
              System.out.println("点击左键");
          }
          public void read() {
          }
          public void write() {
              this.rClick();
              this.lClick();
          }
      }
      
    • 键盘鼠标通过电脑进行工作

    在这里插入图片描述

    4.3、区别

    接口与类的区别:

    1、接口不能用于实例化对象。
    2、接口没有构造方法。
    3、接口中所有的方法必须是抽象方法。
    4、接口不能包含成员变量,除了 static 和 final 变量。
    5、接口不是被类继承了,而是要被类实现。
    6、接口支持多继承。
    

    接口和抽象类的区别

    1、一个类只能继承一个抽象类,而一个类却可以实现多个接口。
    2、接口中的成员变量只能是 public、static、final类型的,抽象类中可以定义各种类型的实例变量和静态变量
    3、抽象类可以有构造方法,接口中不能有构造方法。
    4、抽象类中可以包含非抽象的方法,而接口在jdk7之前只能有抽象方法,在jdk8中增加了default 方法、静态方法等。jdk9中又支持私有方法、私有静态方法。
    4、接口主要在系统架构设计上发挥作用,用于定义模块间的通信契约。抽象类主要在代码实现上使用。可以实现代码的重用。
    5、抽象类中的方法类型可以是任意修饰符,Java 8 之前接口中的方法只能是 public 类型,Java 9 支持 private 类型。
    

    在设计思想上,

    接口主要是对类的行为进行约束,它只约束类行为的有无,对行为的具体实现不做规定。接口只定义行为,类的主体怎么实现,接口不关心。是like a 的关系。所以接口主要用于架构的不同模块之间的通信契约。

    抽象类主要是为了实现代码的复用,当两个以上的类的某些方法的一部分具有相同实现的情况下,通常会把这些相同的行为抽象出来,做成抽象类,在继承了这些功能后还能自己扩展属于自己的功能。抽象类是对本质进行抽象,子类至少是一个父类,is a。

    5、常用的几个关键字


    5.1、final、finally、finalize

    在这里插入图片描述

    1、final:最终的。
    修饰局部变量时赋值后不可改,修饰成员变量时必须赋初值且不可改(基本数据类型值不可改,引用数据类型是不能再指向其他对象,但是对象内的数据是可改的)。
    修饰方法时方法时不能重写
    修饰类时类不能被继承。
    和Static同时使用,是创建常量。
    2、finally是处理异常时配合try、catch一起使用,用于存放那些无论是否出现异常都一定会执行的代码,通常用于释放锁、数据库连接等资源。
    3、finalize是Object类的一个方法,是垃圾回收机制的一部分,当对象被回收时,垃圾回收处理器调用此方法。JVM不能保证此方法总被调用。在 Java 9 中该方法已经被标记为废弃,并添加新的 java.lang.ref.Cleaner,提供了更灵活和有效的方法来释放资源。

    5.2、static

    在这里插入图片描述

    是否可以在static修饰的方法内调用非static方法?
    分两种情况描述。
    1、如果在静态方法中显示的创建了对象的实例,因为对象已经创建了,所以此时可以调用非static方法
    2、在静态方法中没有创建对象实例而直接调用非静态方法,这种情况是不可以的,非静态方法需要创建对象才会分配空间,而静态方法在类加载时便分配了空间,而此时未创建对象,所以在调用时会出现异常。

    5.3、权限修饰符

    在这里插入图片描述

    5.4、 super、this

    在Java语言中 this 表示本类对象的引用,一般隐式的用于引用对象的成员变量和方法。简单来说 this 是用来调用自己的属性和方法的。
    在这里插入图片描述

    在这里插入图片描述

    this和super关键字

    this:指当前对象自己本身(谁用this就是指谁,类似于第一人称我),可以调用自身的属性和方法(不含静态的,静态对应的是类不是对象)。java采用的是就近原则,在方法中有局部变量和属性同名,直接调用则是局部变量,加上this就可以调用属性。

    super:对上级空间的引用,即对父类空间的引用(并不能代表对象,只是代表一个对象中的一块内存而已),super可以调用父类的属性方法。子父类存在着同名的成员(包括变量和方法)时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员;

    super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都需要第一个语句。

    在这里插入图片描述

    5.5、instanceof

    在这里插入图片描述

    展开全文
  • 主要介绍了Java synchronized关键字和Lock接口实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java中定义接口关键字是什么

    千次阅读 2021-03-08 04:36:39
    Java中定义接口关键字是什么Java中定义接口关键字是“interface”。“interface”是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来装封一定功能的集合。接口不能直接实例化,也不能包含...
  • 当抽象中的方法都是抽象的时候,这时可以将该抽象用另种形式定义和表示,就是接口interface特点:对于接口中常见的成员:而且这些成员都有固定的修饰符,不写就默认存在1:全局常量 : 都是 public static ...
  • 2.类与接口之间是多实现的,一个类可以实现多个接口 3.接口接口之间是多继承的 详细解释: 一、一个类的直接父类只有一个,但可以实现多个接口: public class MyInterfaceImpl implements MyInterfaceA,...
  • Java中定义接口关键字是什么?

    千次阅读 2021-02-12 11:07:32
    Java中定义接口关键字是“interface”。“interface”是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来装封一定功能的集合。接口不能直接实例化,也不能包含成员的任何代码,只定义成员本身...
  • 【定义】Java中,能够完成特定功能的...用关键字interface定义接口,通过关键字implements来实现接口; 接口中的成员变量具有公共性(public)、静态性(static)和最终性(final)。所以修饰符只能是public,因此...
  • 引言在Java语言中为了使程序设计变得简单清晰,不允许类的多重继承,只允许单重继承,即一个类只能有一个直接父类。这虽然简化了程序的结构,但也丧失了编写程序的灵活性,减弱了面向对象程序设计的代码复用功能。.....
  • 使用enum关键字定义的枚举类实现接口 首先我们要知道,这里我们说的使用enum关键字定义的枚举类实现接口中的接口都是内部声明了抽象方法的接口 我们使用enum关键字定义的枚举类实现接口有两种情况: 情况: 实现接口,...
  • 本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩--妹妹镇楼:.... 接口的特点() 接口用关键字interface修饰public interface 接口名{}(二) 类实现接口用implements表示public class 类名 implement...
  • 502.500.JAVA基础教程_枚举与注解-使用enum关键字定义的枚举类实现接口(502).rar
  • 一个类可以实现多个接口: class D implements A,B,C{} 但是一个类只能继承一个类,不能继承多个类 class B extends A{} 在继承类的同时,也可以继承接口: class E extends D implements A,B,C{} 这也正是选择用接口而...
  • 计算机后端-Java-Java核心基础-第23章 枚举与注解 08. 使用enum关键字定义的枚举
  • 这里要看这个类是否是非抽象的,如果是普通的类,必须去实现接口里所有的方法,如果是抽象类类,则可以不去实现, 在Java中抽象类就是使用abstract关键字修饰的种特殊的类,抽象类可以不去实现接口的抽象方法,...
  • 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和...
  • java如何判断一个类是否实现了某个接口 Class中有个方法 public native boolean isAssignableFrom(Class cls)用来判断子类是否继承于父类的或者父接口的。 public native boolean isAssignableFrom(Class<?> cls); ...
  • 增加default方法:又叫做接口扩展方法,即在不破坏java现有实现架构的情况下能往接口里增加新方法, default关键字可以给接口添加一个非抽象的方法实现,子类可以直接调用! 如果想对接口增加一个新方法,那么需要对...
  • pdf实现关键字脱敏.zip

    2019-12-11 14:51:00
    使用itextpdf,PDF实现关键字脱敏!
  • java中如何写一个接口实现

    千次阅读 2021-02-12 11:33:10
    接口的定义方式如下:[可见度] interface 接口名称 [extends 其他的接口名] {// 声明变量// 抽象方法...由于接口代表着一个对外行为的集合,所以任何方法在接口内都是public(公开的)。如:public interface Predator...
  • 定义一个接口,并定义相应的来实现实现接口中的方法 */ public interface Circle {//定义接口 double PI = 3.1415;// 定义常量 void setRadius(double radius);// 定义抽象方法 double area();// 定义抽象...
  • 然后通过实现接口来规范多个类 如何定义一个接口格式: public interface 接口名称{ //接口内容 } 备注:换成了interface之后,编译生成的字节码文件仍然是:.java –> .class 接口可以包含的内容有 常量 抽象方法 ...
  • 原程序如下: interface Interf { void display(); } public class E implements Interf { void display() { System.out.println("display..");...所以在实现接口中,实现方法时都要在方法前加上 public 修饰符。
  • 1.在data中定义一个空的数组,这个数组是用来保存从接口中接收到的数据 AroundList: [], //放搜索列表的数组 2.在页面中渲染, item.tit_con就是查询的关键字 <div class="keyWord" v-show="cover"> <...
  • 在我们C++编程过程中,最熟悉的就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。还有一个典型应用就是在继承中也可能会在子类覆盖父类的方法。 公有继承...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 495,252
精华内容 198,100
热门标签
关键字:

一个类实现一个接口的关键字