首页 > 代码库 > Java多态性 抽象类

Java多态性 抽象类

  一   多态性是面向对象的三大特征之一
               多态的含义是:对外一种表现形式,内在有多种具体实现

        Java中多态的具体体现
              方法重载
              方法覆盖
              多态参数(新内容,重点、难点)

        多态环境下对象造型

              向下造型 –又称向下转型

              向上造型 –又称向上转型

         例如:(里面包含了多态的对象造型等)

                  public class aabb {

                    public static void main(String[] args) {
        
                    dog aDog=new dog();
                   aDog.eat1();
                     aDog.jiao();
                   Animal animal=new dog();
                 dog x= (dog)animal;
                 x.play();
                 Animal a= new pig();
                 pig y=(pig)a;
                  y.play();
                  y.eat2();
                  cat Cat=new cat();
                  Cat.he();
                  Cat.eat();
                  //Animal b = new cat();
                  //b.eata();
              
                }

           }
                    class Animal {
            
                   void play(){
                 System.out.println("猫在玩小球球");
                
                
             } void eata(){
                System.out.println("动物吃肉");
             }

            
          }    

                    class cat extends Animal{
            
                    void eat(){
                   //super.eata();
                  System.out.println("猫喝着喝着又饿了,于是跳到河里捉鱼,不幸的是它被淹死了");
                }
                void he(){
                  System.out.println("之后猫跑到河边喝水");
              }
           }
        

             class dog extends Animal{
                void eat1(){
                  System.out.println("狗饿的汪汪的叫");
                  
            }void jiao(){
                System.out.println("之后找到骨头在吃骨头");
            }
        }

        class pig extends Animal{
               void eat2(){
                   System.out.println("一头猪在旁边肆无忌惮的吃草");
            }
        }
   二  抽象类
             用abstract修饰的类就是抽象类。如果某个类中包含有抽象方法,那么该类就必须定义成抽象类。但是抽象类中不一定有抽象方法。
        关键字abstract定义抽象类,一般语法:
                                             [访问权限] abstract class 类名 {
                                                      成员列表
                                        }
             抽象类只能用作基类,表示的是一种继承关系。继承抽象类的非抽象类必须实现其中的所有抽象方法,而已实现方法的参数、返回值要和抽象类中的方法一样。否则,该类也必须声明为抽象类。
         关键字abstract声明抽象方法,一般语法:
            [访问权限] abstract 返回值类型 方法名称(参数列表);
         抽象的作用
             在面向对象领域,抽象类主要用来进行类型隐藏;也就是使用抽象的类型来编程,但是具体运行时就可以使用具体类型。

             利用抽象的概念,能够在开发项目中创建扩展性很好的架构,优化程序。

             抽象类,抽象方法,在软件开发过程中都是设计层面的概念。也就是说,设计人员会设计出抽象类,抽象方法,程序员都是来继承这些抽象类并覆盖抽象方法,实现具体功能。
     三   Java接口是一系列方法的声明,是一些抽象的集合
            接口的基本格式
            [修饰符] interface 接口名 [extends 父接口名列表]{

                 [public] [static] [final] 常量;

               [public] [abstract] 方法;
            }
             接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。
             extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。父接口可以存在多个,用逗号隔开。
             方法:接口中的方法只有定义而没有被实现
         Java接口继承接口的原则:
             Java接口可以继承多个接口
             接口继承接口依然使用关键字extends
         接口继承与类继承对比:Java类的继承是单一继承,Java接口的继承是多重继承。
         类实现接口的基本格式:
                [修饰符] class <类名> [extends 父类名] [implements 接口列表]{

           }

 

Java多态性 抽象类