正如标题所示,我呢想说说自己对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,正如上面代码所示,抽象类里面可以有实现的方法也可以有抽象的方法,当然你可以利用极限的思维,里面可以全部是抽象方法,也可以是全部都是普通实现了的方法。
接口只是一种规范,大家都可以来继承,但是要实现里面所有的抽象方法,如果少的话,我想大家可以接受,但是如果很多呢。。。那就很苦逼了,所以这时我们也可以向抽象类抛一下媚眼,有可能会有解决方法。。。哈哈。
自己在这里说了这么多,但是感觉还有很多东西没有说出来,所谓越是基础的东西越是博大精深,所以对我们这些菜鸟来说。。。想要起飞,基础是关键的一步!!
相关推荐
**知识点1:接口-抽象类-类区别** - **接口**: 接口是一种特殊类型的类,它只能包含抽象方法和常量。Java中一个类可以实现多个接口,用于定义一组行为规范。 - **抽象类**: 抽象类是一种不能被实例化的类,它可以...
- 但它不能继承其他类,只能继承抽象类或实现接口。 **49. class.forName的作用?** - `Class.forName`用于动态加载类,返回对应的`Class`对象。 **50. super.getClass()方法调用?** - `super.getClass()`用于...
抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?** - 接口可以继承其他接口。 - 抽象类可以实现接口。 - 抽象类可以继承具体类。 - 抽象类中可以...
- **知识点**: 接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类或抽象类,抽象类中可以有静态的`main`方法。 - **注意事项**: 抽象类可以像普通类一样包含静态方法。 **21. 写clone()方法时,通常都有...
- **解析**:Java允许接口继承接口,抽象类实现接口,并且抽象类可以继承具体类。抽象类中也可以定义静态方法,包括`main`方法。 #### 21. 写clone()方法时,通常都有一行代码,是什么? - **答案**:通常会有`...
此外,使用接口和抽象类也是实现多态的一种方式。 #### 24\. abstractclass和interface有什么区别? - **抽象类**:可以有默认方法实现,可以有构造器,可以继承具体类。 - **接口**:所有方法默认都是抽象的,没有...
- 抽象类可以继承另一个抽象类,而接口只能继承其他接口。 - 类可以实现多个接口,但只能继承一个抽象类。 25. **abstract的method是否可同时是static, 是否可同时是native,是否可同时是 synchronized?** - `...
抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? - **解答**: - 接口可以继承接口。 - 抽象类可以实现接口。 - 抽象类可以继承具体类。 - ...
抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的 main 方法?** - 接口可以继承其他接口。 - 抽象类可以实现一个或多个接口。 - 抽象类可以继承具体类。 - ...
抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法?** - 接口可以继承接口。 - 抽象类可以实现接口。 - 抽象类可以继承具体类。 - 抽象类中可以有静态...
抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?抽象类中是否可以有静态的main方法? - 接口可以继承接口。 - 抽象类可以实现接口。 - 抽象类可以继承具体类。 - 抽象类中可以有静态的`...
抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法? - 接口可以继承其他接口。 - 抽象类可以实现一个或多个接口。 - 抽象类可以继承具体类。 - 抽象类...
MyBatis可以通过简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 **2. MyBatis的优点:** - **灵活性高:**由于MyBatis支持编写原生态...