JAVA9

来源:互联网 发布:淘宝网打底羊毛衫 编辑:程序博客网 时间:2024/06/07 14:50
抽象类接口

抽象类

      1理解抽象类的作用

在编写一个类时,往往会为该类定义一些方法,这些方法用来描述该类的行为,那么这些方法都有具体的方法体。但是在某些情况下,某个父类只知道其子类应该包含怎样的方法,但是无法准确的知道这些子类如何具体实现这些方法,例如定义一个Shape(图形)类,这个类中有一个计算轴承的方法getL(),但是不同的Shape子类对周长的计算方式不一样,即Shape类无法准确知道其子类计算周长的方法。

可能有人会提出,既然Shape不知道如何实现getL()方法,那么就干脆不管它。这样不好.最好的解决方案可以使用抽象类。

 

通过继承可以从原有的类派生出新的类,原有的类称为父类或基类,而新的类称为子类或派生类。通过继承机制,派生出来的子类不仅可以得到父类的属性和方法,还可以定义自己的属性和方法。

Java中有一种特殊的类,专门用来作为父类,这种类被称为“抽象类”。抽象类想模板一样,其目的是要设计者根据他的格式来修改并创建新的类。但是抽象类自己不能创建对象,只能通过抽象类派生出来的子类创建对象。

 

2掌握抽象类的特点

                  ◆包含抽象方法的类一定是抽象类.

                  ◆抽象方法和抽象类都用关键字abstract修饰

                  ◆构造方法,static方法都不能定义为抽象方法。

                  ◆抽象方法不能使用private访问控制符修饰。

                  ◆抽象方法只需要声明,不需要实现。

                  ◆抽象类中可以定义构造方法,但是抽象类不能创建对象。

                  ◆子类继承抽象类时,需要重写抽象类中所有的抽象方法,除非子类也是抽象类。

 

3掌握抽象类的语法

                  ◆语法:

                          [访问控制符]abstract class 类名{

                                   0—n个属性;

                                   [修饰符] 返回值类型 方法名([参数列表]){

                                            方法体;

                                            [return返回值;]

}

[修饰符] abstract 返回值类型方法名([参数列表]);

}

 

◆案例:

4掌握抽象类的使用

                  案例一:继承抽象类

 

案例二:多重继承

 

说明:B类继承了A类,但是B没有重写A类中的抽象方法,因为B本身也是抽象类

     C类继承B类时,需要重写2个抽象方法。

 

 

综合案例:

 

接口(更彻底的抽象类)

1理解接口的概念

抽象类是从多个类中抽象出来的模板,如果将这种模板进行的更彻底,则可以提出一种更加特殊的“抽象类”-----接口(interface). 接口中没有普通方法,接口中所有方法都是抽象方法。

 

接口就是一组对类的要求,它反映了一组没有内在联系、不相关的类之间的通讯的协议。

 

2掌握接口的特点

                  ◆一个类只能继承一个直接的父类,但是一个类可以实现多个接口。(多继承)

                  ◆接口中不能定义构造方法,接口不能实例化。

                  ◆接口中方法全部都是抽象方法,接口中属性全部都是全局常量

◆当一个类实现(继承)某个接口时,他必须实现接口中所有的方法,除非这个类定义为抽象类。

 

3掌握接口的语法

                  ◆语法:

                          [修饰符]interface 接口名{

                                    全局常量;

                                   抽象方法;

}

 

◆案例:

public interface A{

         int a = 5;    //相当于  public static final int a = 5;

         void fun1(); //相当于  public abstract void fun1();

}

 

说明:接口中所有属性默认为全局常量,所有方法默认为抽象方法

所有定义接口是,如果缺省了public、static、final、abstract关键字,系统会自动加上。

 

4掌握接口的使用

                  interface(接口)-----class(类)

                  implements(实现)----extends(继承)

 

                  案例一:接口实现

                 

案例二:

 

案例三:特殊情况说明

//实现多个接口,接口中用,隔开即可。

C like  A和B

public class C implements A,B{

}

 

//同时有继承和实现接口时,继承在前,实现接口在后面。

public class C extends Bimplements X,Y{

   

}

 

//接口继承接口 注意,此时需要用extends,而且此时可以多继承。

public interface B extends A{

}

 

public interface C extends A,B{

}

 


原创粉丝点击