`
wojiaolongyinong
  • 浏览: 74583 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

我再来说说普通类、接口、抽象类

    博客分类:
  • Java
阅读更多

正如标题所示,我呢想说说自己对Java中的,普通类、接口和抽象类的理解。

普通类:

public class ClassName{
         /**
          *里面写已经实现的方法
          */
          public void doSomething(){
                   /*方法体*/
          }
}

 特点:普通类区别于其他两个,因为里面的方法都是实现了的,而且里面的属性可修改,亦可以实例化出一个对象。

 

接口:

public interface Action{
       /**
        *里面的方法都是抽象的,只有方法头,没有方法体,直接就是去掉花括号加分号
        */
        public void doSomething();

        public static final String name = "LONG";
}

 看如上代码,可以分析得到,首先普通类与接口的区别在于定义时所使用的关键字,在普通类中是使用class,而在接口中使用interface关键字,而且还有在继承时,普通类使用extends来继承普通父类(单根继承--所谓的只有一个爸爸),而普通类使用implements来继承接口,而且必须在继承的普通类中实现接口中的所有抽象方法。其次就是花括号里面的内容了,普通方法里面的方法都是普通方法(实现了的方法,就是后面有花括号,哪怕里面什么都没有写),而且普通方法里面的属性可以修改。但是在接口中,方法都是抽象方法,例如就像上面代码中写的那样,没有实现,而且里面中的属性,比如说就是那个代码里面的变量name当在接口中赋完值后,再也不能修改。

接口在我看来就像是一位司令,它只分配任务(就是只定义方法,却不实现),而士兵必须执行(实现接口的类就是士兵,必须把接口中定义的方法都实现),所谓军令如山倒(里面的属性不能再修改)。不知比喻恰当不恰当,请读者见谅哈。。。嘿嘿!

 

抽象类:

public abstract class ClassName{
         /**
         *抽象类介于接口和普通类之间,可以有抽象的方法,也可以有实现的方法
         */

         //抽象的方法
         public abstract void doSomething();

         //普通实现了的方法
      public void doAnything(){
                   /*方法体*/
         }
}

 看上面的代码,知道定义除抽象类时必须加关键字abstract,还有抽象类里面的方法,如果是抽象的方法,则也必须在抽象方法的前面加上关键字abstract,正如上面代码所示,抽象类里面可以有实现的方法也可以有抽象的方法,当然你可以利用极限的思维,里面可以全部是抽象方法,也可以是全部都是普通实现了的方法。

 

接口只是一种规范,大家都可以来继承,但是要实现里面所有的抽象方法,如果少的话,我想大家可以接受,但是如果很多呢。。。那就很苦逼了,所以这时我们也可以向抽象类抛一下媚眼,有可能会有解决方法。。。哈哈。

自己在这里说了这么多,但是感觉还有很多东西没有说出来,所谓越是基础的东西越是博大精深,所以对我们这些菜鸟来说。。。想要起飞,基础是关键的一步!!

 

分享到:
评论

相关推荐

    java面试宝典

    **知识点1:接口-抽象类-类区别** - **接口**: 接口是一种特殊类型的类,它只能包含抽象方法和常量。Java中一个类可以实现多个接口,用于定义一组行为规范。 - **抽象类**: 抽象类是一种不能被实例化的类,它可以...

    Java就业面试题264道(独家奉献)

    - 但它不能继承其他类,只能继承抽象类或实现接口。 **49. class.forName的作用?** - `Class.forName`用于动态加载类,返回对应的`Class`对象。 **50. super.getClass()方法调用?** - `super.getClass()`用于...

    java面试大全

    抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?** - 接口可以继承其他接口。 - 抽象类可以实现接口。 - 抽象类可以继承具体类。 - 抽象类中可以...

    java面试宝典 吐血推荐,很全面

    - **知识点**: 接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类或抽象类,抽象类中可以有静态的`main`方法。 - **注意事项**: 抽象类可以像普通类一样包含静态方法。 **21. 写clone()方法时,通常都有...

    最新程序员面试题(达内内部培训资料):面霸v5.0修订.pdf

    - **解析**:Java允许接口继承接口,抽象类实现接口,并且抽象类可以继承具体类。抽象类中也可以定义静态方法,包括`main`方法。 #### 21. 写clone()方法时,通常都有一行代码,是什么? - **答案**:通常会有`...

    java 面试题

    此外,使用接口和抽象类也是实现多态的一种方式。 #### 24\. abstractclass和interface有什么区别? - **抽象类**:可以有默认方法实现,可以有构造器,可以继承具体类。 - **接口**:所有方法默认都是抽象的,没有...

    Java程序员面试宝典2012最新出炉

    - 抽象类可以继承另一个抽象类,而接口只能继承其他接口。 - 类可以实现多个接口,但只能继承一个抽象类。 25. **abstract的method是否可同时是static, 是否可同时是native,是否可同时是 synchronized?** - `...

    2011版java复习.doc

    抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? - **解答**: - 接口可以继承接口。 - 抽象类可以实现接口。 - 抽象类可以继承具体类。 - ...

    Java面试宝典

    抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的 main 方法?** - 接口可以继承其他接口。 - 抽象类可以实现一个或多个接口。 - 抽象类可以继承具体类。 - ...

    java 面试宝典

    抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法?** - 接口可以继承接口。 - 抽象类可以实现接口。 - 抽象类可以继承具体类。 - 抽象类中可以有静态...

    2011最新Java程序员面试笔试宝典

    抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?抽象类中是否可以有静态的main方法? - 接口可以继承接口。 - 抽象类可以实现接口。 - 抽象类可以继承具体类。 - 抽象类中可以有静态的`...

    java学习文档

    抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法? - 接口可以继承其他接口。 - 抽象类可以实现一个或多个接口。 - 抽象类可以继承具体类。 - 抽象类...

    1000道 互联网Java工程师面试题 485页_PDF密码解除.pdf

    MyBatis可以通过简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 **2. MyBatis的优点:** - **灵活性高:**由于MyBatis支持编写原生态...

Global site tag (gtag.js) - Google Analytics