zoukankan      html  css  js  c++  java
  • 接口--多态

    1.写出定义接口的格式
    interface A{
         public abstract void work();
    }
    注:
    (1)接口的权限修饰符如果不标明,默认为default,仅可在本包中访问;
    (2)接口中的方法必须为抽象方法,且public abstract可以不写,默认为public abstract.实际开发中通常写为 public void work();
    (3)接口的子类叫做实现类,命名方式一般为:接口名+Impl,如InterfaceImpl;
    (4)java8中有新特性,可实现类方法(static修饰,可由接口名直接调用)和默认方法(default修饰,由实现类的实例化对象调用);


    2.写出实现接口的格式
    实现接口的类称为实现类,格式如下:
    //定义接口
    interface A{
         public void work();
    }
    //定义实现类
    class B implements A{
         public void work(){
             System.out.println("实现类");
         }
    }

    3.说出接口中成员的特点
    接口由全局常量和抽象方法构成.全局常量由public static final修饰.如:
    interface A{
         public static final String str = "abc";
         public void work();
    }


    4.接口和抽象类的区别
    区别:
    1)是否提供实现方法:抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码复用性;接口只能包含抽象方法(java7及以前);
    2)继承与实现:接口可以同时继承多个接口;一个类只能继承一个直接父类(可以为抽象类),却可以实现多个接口(弥补了单继承的局限);
    3)共性与扩展:抽象类为继承体系中的共性内容,接口为继承体系中的扩展功能.

    相同:
    1)顶端:都位于继承的顶端,用于被其他类实现或继承;
    2)实例化对象:都不能直接实例化对象;
    3)抽象方法:都可以包含抽象方法,其子类必须覆写这些抽象方法

    选用:
    1)优先用接口,少用抽象类
    2)需要定义子类的行为,又要为子类提供共性功能时才选用抽象类


    5.能够说出使用多态的前提条件
    有继承(extends)关系或实现(implements)关系


    6.理解多态的转型
    举例:父类Person  子类Student
    Person p = new Student();    //向上转型(自动转换),转换完成后p可访问父类的成员变量,调用子类覆写的成员方法,但不能调用子类特有的成员方法

    Student stu = (Student) p;    //向下转型,stu可访问子类中的成员变量,可调用父类方法(继承)和子类中的所有方法

    7.理解多态
    java引用变量有两个类型:一是编译时类型,一是运行时类型。编译时类型由声明该变量时使用的类型决定;运行时类型由实际引用的对象决定。如果编译时类型与运行时类型不一致,就可能出现多态(Polymorphism)。方法的重载/覆写,实例化对象的转型等都属于多态的范畴。

  • 相关阅读:
    冒泡排序
    三种for循环遍历
    打印一年中的月历
    基于主主复制的mysql双机热备+keepalived实现高可用性
    docker实现apache+php容器和mysql容器独立运行
    XML和JSON
    PHP表单
    【翻译-Docker】Post-installation steps for Linux
    【翻译】docker install
    小计划
  • 原文地址:https://www.cnblogs.com/huguangqin/p/7124005.html
Copyright © 2011-2022 走看看