当前位置: 首页 > news >正文

抽象类 接口

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

       抽象类: 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。

  1.         不能创建abstract 类的实例。

  2.         然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。

  3.         不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

  4. package Text_1;
    abstract class Abs{
     public int a;
     public int b = 10;
     public abstract void foo();
     public abstract void fun();
    }
    class Test_abs extends Abs{
     public void getValue(){
      a = 12;
      b = 24;
      System.out.println(" a = " + a + "  b = " + b );
     }
     
     public void show(){
      System.out.println("Test_abs : " );
      foo();
      fun();
     }
     
     public void fun(){
      System.out.println("in class Text_abs in fun()");
     }
     
     public void foo(){
      System.out.println("in class Text_abs in foo() ");
     }
    }
    public class Inter_Abstra {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Test_abs a = new Test_abs();
      a.show();
      a.getValue();
     }
    }

    结果:

  5. Test_abs :
    in class Text_abs in foo()
    in class Text_abs in fun()
     a = 12  b = 24

     接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。

  1.         多继承性可通过实现这样的接口而获得。

  2.         接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。

  3.         接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

    package Text_1;
    interface Inter{
     public int a = 20;
     public int b = 10;
     public abstract void foo();
     public abstract void fun();
    }
    class Test_abs implements Inter{
     public void getValue(){
      System.out.println(" a = " + a + "  b = " + b );
     }
     
     public void show(){
      System.out.println("Test_Inter : " );
      foo();
      fun();
     }
     
     public void fun(){
      System.out.println("in class Text_Inter in fun()");
     }
     
     public void foo(){
      System.out.println("in class Text_Inter in foo() ");
     }
    }
    public class Inter_Inter {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Test_abs a = new Test_abs();
      a.show();
      a.getValue();
     }
    }


结果:

Test_Inter :
in class Text_Inter in foo()
in class Text_Inter in fun()
 a = 20  b = 10

转载于:https://my.oschina.net/u/2264568/blog/343662

相关文章:

  • HDU 1576 (乘法逆元)
  • 封装一个xib步骤
  • J2EETomcat 的配置
  • PPTP一键安装脚本及使用webmin管理PPTP ××× Server
  • office365 Proplus 部署安装(office deployment tool)
  • 15个有用的浏览器内的web开发工具
  • [转载]最小生成树-Prim算法和Kruskal算法
  • C++开源项目等收集
  • WordPress安装使用问题记录
  • Java集合(四)LinkedList源码分析及使用示例
  • quotacheck命令不能创建aquota.user和aquota.group文件解决方法
  • Unity 序列化
  • 谈谈OC的内存管理 (2013-01-08 09:28:14)
  • Home键的获取监听,安卓4.0后就不能在onkeydown方法中获取了。怎么办。
  • 两个链表的第一个公共子节点
  • 时间复杂度分析经典问题——最大子序列和
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Docker容器管理
  • Fastjson的基本使用方法大全
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java多线程(4):使用线程池执行定时任务
  • Js基础知识(四) - js运行原理与机制
  • laravel 用artisan创建自己的模板
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Service Worker
  • Shell编程
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Unix命令
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 阿里云Kubernetes容器服务上体验Knative
  • 不上全站https的网站你们就等着被恶心死吧
  • 给Prometheus造假数据的方法
  • 扑朔迷离的属性和特性【彻底弄清】
  • 设计模式走一遍---观察者模式
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • zabbix3.2监控linux磁盘IO
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • $.each()与$(selector).each()
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)虚拟机的安装与使用,linux系统安装
  • (16)Reactor的测试——响应式Spring的道法术器
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)springboot助农电商系统 毕业设计 081919
  • .NET Core 中插件式开发实现
  • .Net IE10 _doPostBack 未定义
  • .net 后台导出excel ,word
  • .NET构架之我见
  • @RequestMapping用法详解