首页 > 代码库 > 抽象类和接口

抽象类和接口

抽象类

为什么要引用抽象类这种类:父类中有许多的方法没有具体内容;而且子类中重写父类的方法如果写错,不会提示错误;所有我们引用抽象类来对子类加以限制,同时将父类中没有具                               体方法的方法,定义为抽象,可以更加简洁。不需要再用{}来表示方法。      

抽象类和抽象方法:不知道具体内容的类和方法

抽象类的定义:abstract class 类名{}

抽象方法的定义:abstract 返回类型 方法名(形参);

怎么引用抽象类:抽象类不能被直接new,但是可以调用它的派生类----当抽象类有自己的派生类时可以直接调用派生类来实现调用抽象类;当没有派生类时,需要自己写一个派生自这                       个抽象类的派生类,来变相调用这个抽象类。

注意:抽象类不能被直接new出来;抽象方法没有函数体;抽象类中可以没有抽象方法,但是有抽象方法的类必定是抽象类;抽象类中可以包含成员变量、抽象方法、非抽象方法;抽           象类的派生类可以不实现抽象方法,但是引用的类必须要注明是抽象类。

接口

接口可以理解为就是一个独特的抽象类,他只有常量和抽象方法

定义方法:    interface 接口名 [extends 父接口列表]{
           final 类型 常量名=值;
           public void 方法名(形参);
         }

接口的实现:
[abstract] class 类名 extends 父类 implements 接口列表{}  //[]代表可以省略不写

定义接口时要遵循接口分离原则,即接口实现的功能尽量的少,最好一个借口实现三个以下的功能;同时接口的接口名尽量是形容对象方法的形容词。

注意:类是单继承,而接口可以多个引用。

this:这个对象

super:父类

final:当修饰成员变量时,相当于常量

   当修饰方法时,说明方法是终态方法,不可以进行重写操作

     当修饰类时,说明类是终态类(可以理解为最具体,不能再具体),不可以被继承

 例如之前做的猫叫同时惊醒了人、老鼠和另一只猫:

新建三个接口分别为人、老鼠、猫,

技术分享技术分享技术分享

分别给他们自己的行为方法,然后再建立一个猫叫的类来调用这三个接口

技术分享

之后用main函数来调用猫叫函数 实现猫叫惊醒了人、老鼠和另一只猫

技术分享

 

 

         

 

抽象类和接口