abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,name该方法就是抽象方法,如果修饰类,该类就是抽象类。(有抽象方法就一定要抽象类!)
抽象类中可以没有抽象方法(就是可有普通方法),但抽象方法必须是在抽象类。
抽象类,不能使用new关键字来创建对象(也就是实例化对象),只能考子类继承实现。
抽象方法,只有方法的声明,没有方法的实现,是用来让子类实现的。
使用abstract关键字 ,实现抽象类(方法同理)
public abstract class Demo(){ // 抽象方法,只有方法的名字,没有方法的实现。(也就是没有方法体) public abstract void add(); //类似约束,有人帮我们实现 }
继承抽象类
继承了抽象类的子类,都必须重写抽象类中的方法
如果此时我们子类也是抽象类,就可以不用重写抽象类的方法
public class T extends Demo{ //继承时就会报错,报的是,必须重写抽象类中的方法。鼠标放在下划线,快捷完成方法重写 @Override public void add(){ //代码块 } }
extends属于单继承
子类继承抽象类,那么久必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。
快速补全方法的快捷键:Ctrl+I
接口_interface接口的一些特征
1、接口是某个事物对外提供一些功能的声明
2、接口常常和多台使用在一起,也解决了java中单一继承的问题
3、接口的关键字是——interface
4、一般使用接口生命方法或常量,接口中的方法只能声明,不能具体实现
接口的实现:格式:
interface 接口名{}
类实现接口用 impements实现 格式:
class 类名 implements 接口名{}
接口:只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程!!!
接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能...”的思想。
接口的本质是契约!!
声明类的关键字是class,声明接口的关键字是interface
作用:
接口是一个约束
定义一些方法,让不同的人实现
方法只能创建抽象,创建 public sbstract
属性只能创建常量,常量创建 public static final
接口不能被实例化,接口中没有构造方法
implements 可以实现多个接口
必须要重写接口中的方法
示例:这里我们写一个防盗门的样例分析:防盗门具有门的属性和防盗铃的属性
代码实现;
为了方便,这三个文件我放在同一个包的下面
public interface Call { //这是实现门铃的接口 //报警 public void call(); }
public interface Protecte { //保护的接口 public void pro(); }
//门 public class Door implements Protecte,Call { //这里就解决了无法多继承的问题 @Override public void call() { // TODO Auto-generated method stub } @Override public void pro() { // TODO Auto-generated method stub } }
接口还允许多继承
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)