1.抽象类和抽象方法
在记录接口之前需要先说下抽象方法和抽象类。用abstract关键字来修饰该方法为抽象方法,用abstract来修饰该类叫作抽象类。
一个类中存在了抽象方法,那么该类一定是抽象类,需要使用abstract关键字修饰,一个抽象类中也可能不存在任何的抽象方法。
//不存在任何抽象方法的抽象类,只是用abstract关键字修饰即可
public abstract class AbstractClass {
public String testStr() {
return "111";
}
}
抽象类是不能被实例化的,就算类中全是有实现细节的方法也不行,我个人的理解是抽象类存在的意义就是作为基类被其他类继承,如果一个抽象类没有任何子类,那么该抽象类也就没有存在的必要了。(另外抽象类中很有可能是存在抽象方法的,如果真的被实例化了,那调用到了抽象方法怎么算)
抽象类是对相同但不确定的东西抽象出来,单抽象类抽象的不够干脆,他还可以有实现细节的方法,而接口interface使抽象的概念更加彻底(java8之后也可以提供默认方法)
java中在继承中只能存在一个父类,这显然不能满足要求,而接口正好弥补了这一点,一个实现类可以同时实现多个接口。
2.接口interface
使用interface关键字修饰,方法都为没有实习细节的方法。
接口类,及接口中的方法权限修饰符都只能为public和默认(类中的嵌套接口除外),其实接口中的方法权限修饰符都是跟着接口类而定,本身是不需要添加任何修饰符。接口类为public,那么他的方法也全是public的,接口类为默认,那接口中的方法也都是默认包访问权限。
接口中的属性都是默认包含static,final关键字的,只要定义就是常量。
实现类使用的多个接口中,有相同的方法(返回值,和参数类型都相同),实现类只需要实现一个;方法名相同,参数相同,返回值不同试,实现类会进行报错。
接口可以继承接口使用extends,接口直接支持多继承
本文深入探讨了抽象类和接口的概念,解释了抽象类与抽象方法的关系,以及接口如何弥补Java单继承的限制,实现多接口继承。文章还详细解析了接口的特性,包括权限修饰符、属性默认值以及实现类在实现多个接口时的注意事项。
897

被折叠的 条评论
为什么被折叠?



