接口

多态


一.静态多态:在编译期就确定执行的哪个对象的哪个方法。
   1.体现(方法重载)
   2.体现(单独使用方法重写)
   
二.动态多态:在编译的时候不知道,运行时才能确定方法所指的对象。
   1.转型技术:A.数据类型 自动转换小转大  (比如float f = 5)
             强制转换大转小  (比如float f = (float)5.0)
  B.引用类型 自动转换向上转型(父类的引用指向子类时该引用只能看到来自父类的属性行,看不到子类特有的属性行为 绝对成功没有风险)
 (父类的引用指向子类时,该引用调用被子类重写的方法,得到是子类重写后的效果)
             强制转换向下转型(强制转换,不一定成功,有风险)
 (只有在本类的引用指向本类的对象才能成功)
   2.动态绑定:父类的引用指向子类对象,同时调用父类被重写方法。
  运行时根据父类引用变量所指对象的实际类型执行相应的子类方法,从而实现多态性。
   
三.instanceof运算符:用于判断运行时对象的真正类型。
      格式:if(引用 instanceof 类名){}




抽象


一.表明该类拥有一个这样的行为,但是不知道该如何去实现。
abstract关键字:只能修饰类,修饰方法。
 格式:类(修饰符 abstract 类  类名)
   方法(修饰符  abstract 返回类型 方法名)
   可以写在class关键字前的任何地方。
 
二。注意:1.有抽象方法的类必须是抽象类,在语法上抽象类不一定有抽象方法,但是这样失去了设计的意义。
 2.抽象类不能产生对象,抽象类的用途是专门用来产生子类的。
 3.抽象类也是有构造方法的,虽然自身不能产生对象,但是子类可以产生对象。
 4.子类继承抽象类的时候,必须重写所有的抽象方法,除非该子类自己也是抽象类。
 5.抽象类不影响动态绑定,抽象类的引用可以指向子类对象,并强迫子类重写父类的抽象方法。


接口
一.
为了没有继承关系的类,也能共享行为,设计出来的独立的数据类型
格式:接口命名往往后面加上able,代表提供什么样的能力
      属性只能是公共的静态的常量属性,就算不写关键字,默认为公共静态常量。
      接口所有方法都是公共抽象方法,可以不写默认就是public abstract。
 接口是没有构造方法的。


编写接口
实现接口:使用关键字implements,必须重写来自接口的所有的抽象方法(比如本类)
          没有重写来自接口的所有方法,那么该类只能是抽象类。
 类可以同时做子类继承和实现多个接口
 接口类的引用可以是指向实现类的对象(如同父类指向子类)


继承接口 接口继承接口可以是多继承


抽象类和接口的区别,抽象类写的是与生俱来的行为,接口写的是外部可选的特征和行为(判断如果没有这个行为是不是这个类,如果是就写入类中)

单一原则
开闭原则,好的软件设计应该是可以任意扩展,对于修改功能是关闭的。
最小接口原则(接口隔离原则) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值