Java 接口 多态概念 知识

一、接口
     概念:可以理解为时一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来定义
     class:用于定义类
     interface 用于定义接口
    语法:访问权限修饰符  interface  接口名{
            //全局常量
   //抽象方法
            }
   接口中成员修饰符是固定的
      成员变量:public static final
      成员函数:public abstract
     如果不写 系统会默认加上public static final,public abstract,建议写上
           implements :实现
  类与接口的关系:实现
  继承:extends
特点:
1.接口是特殊的抽象类,特殊在  接口中所有子类都是常量,方法都是抽象的
2.接口允许多实现,弥补单继承,因为接口中的抽象类没有方法体 实现谁都行 不冲突
3.Java中允许单继承  提高了程序的扩展性
4.接口与接口之间 也有关系  接口继承可以继承多个接口  因为是抽象的


接口可以用来多实现
类与接口之间是实现关系  而且类继承一个类同时 可以实现多个接口
接口与接口之间可以有多继承关系

接口的好处
  它是对外暴露的规则  提高了程序的扩展性
  封装  保证了程序的安全性

  接口的本质
      从接口设计的角度而言  接口中定义了一套规则和标准
二、多态:
实例代码(接口与多态): 
class  Demo4

public static void main(String[] args) 
{
Compute x=new compute1();
        function(x);
Compute s=new compute2();
        function(s);
Compute y=new compute3();
        function(y);
Compute w=new compute4();
        function(w);


}
public static void function(Compute  c){
System.out.println(c.computer(10,5));


}
}


interface   Compute
{
public  abstract int computer(int n,int m); 



class compute1 implements Compute
{
  int n;
  int m;
  public void Sum(int n,int m){
      this.n=n;
 this.m=m;
  }
  public  int computer(int n,int m){
      return n+m;
  }
}
class compute2 implements Compute
{
  int n;
  int m;
  public  void jian(int n,int m){
      this.n=n;
 this.m=m;
  }
 public  int computer(int n,int m){
    return n*m;
  }
}
class compute3 implements Compute
{
  int n;
  int m;
  public void cheng(int n,int m){
      this.n=n;
 this.m=m;
  }
 public  int computer(int n,int m){
   return n-m;
  }
}
class compute4 implements Compute
{
int n;
  int m;
  public  void chu(int n,int m){
      this.n=n;
 this.m=m;
  }
 public  int computer(int n,int m){
  return n/m;
  }
}
    定义:某一类事物的多种存在形式
    多态的前提:
       1.父类引用指向子类对象
       2.必须是类与类之间有关系 要么继承 要么实现
       3.子类存在重写
       优点:提高程序的扩展性  
       缺点:但是只能使用父类的引用访问父类中的成员

对象的向上转型与向下转型
       Compute x=new compute1();   向上
       compute1  y=(compute1 )x;     向下
      注:多态转的是父类引用  指向了自己的子类对象是  该应用可以被提升  也可以被强转
          多态至始至终  都是子类对象在做着变化

instanceof   if(an  instanceof  cat){}   用来运行时指出对象是否是特定类的一个实例;
如果是属于类型的实例 就返回TRUE  反之则返回false
instanceof 不常用
      1.当子类有限时
      2.当传输的类型需要进行其他操作

在多态状态下:对成员方法的调用  编译看左边(父类)  运行看右边(子类)
              对成员变量的调用  编译看左边   运行看左边
              静态成员         编译看左边(父类) 运行看左边(父类)







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值