黑马程序员--接口interface,接口的多继承

  1. ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------

1.      第十天回顾

  封装继承多态:已经完成了

  多态:使用方法和定义  父类或者接口 = new子类();方法都是子类重写

  编译的时候,知道父类!运行时期,只有非静态方法运行子类!

  多态中的转型,向上,向下

  向上就是子类提升为父类,JVM自动的,只能使用子类父类共有成员,不能使用子类特有。

  向下,需要使用子类特有功能的时候, instancof 判断,防止类型转换异常的方法。

  类型的强制转换和基本数据类型完全一样 short s = (short)(1+s);  Catc = (Cat)a;

 

  抽象类,怎么定义abstract 方法体,子类抽象类,重写抽象方法,建立子类对象

  abstract  final private static

 

2.      第十一天学习内容。  接口interface  如何定义接口,定义规定,如何使用接口。接口自身的特点,接口的多继承,接口和抽象类的区别。内部类,定义格式,如何调用内部类成员,匿名内部类(安卓吗),包package

 

3.      接口概述

  当一个抽象类中,如果所有方法都是抽象方法,看成是一个特殊的抽象类。换了一个新的名词,命名这个类,接口。

  接口看成是一个特殊的抽象类,定义接口,使用的就不是class关键字,定义接口的关键字interface 接口名(类名)

  接口中的内容,固定格式:

   定义成员变量固定写法:  public static final 数据类型 变量名 = 值;

   定义成员方法固定格式:public abstract 返回值类型方法名();

  接口中的修饰符,不写,不表示没有,哪一个不写,编译的时候,自动帮你写

  修饰符,可以选择性书写。但是为了程序规范性,都要写.

   接口中的权限,固定就是public不能变

 

4.      接口的使用方式

  因此使用接口,换了一个更贴切的名字,不是继承,叫做实现

  定义类,实现接口  (定义类,继承抽象类)

  实现的关键字implements    class XX implements 接口

  这个类,称作是接口的实现类(可以叫他子类)

  实现类,实现接口,重写全部抽象方法,建立实现类的对象

  如果实现类,只重写了部分抽象方法,这个类还是一个抽象类

 

5.      接口的多实现

  实现单继承,很大局限性,Java在接口中,对单继承进行了改良,接口的多实现。

  一个类,可以同时实现多个接口 implements 多个接口,逗号分开.

  一个类继承一个类,实现多个接口。子类的事情做的太多了,以后关注就是父类或直接接口中的方法声明,运行的是子类的重写

 

6.      接口和接口之间的关系

  类和类之间是继承关系,单继承

  类和接口之间是实现关系,多实现

  接口和接口之间是什么关系,继承关系,接口支持多继承

  面试题:问Java中支持多继承吗,类单继承,接口之间多继承

 

7.      接口的自身特性

  接口是一个对外暴露的规则

  接口是对一个程序的扩展性

  接口降低了耦合性--紧密连接性

  以后写程序,必须考虑扩展性,程序尽量不要写死,紧密性太高,不适合扩展

  Cat c = newCat();  c.eat();    Animal a = new Cat(); a.eat();

 

8.      接口和抽象类的区别

  定义上

    抽象类,可以有抽象,可以非抽象

    接口,全部抽象

 

 使用上

    抽象类,单继承,子类继承重写抽象方法

    接口,多实现,实现类重写抽想法

 

 继承体系上

   抽象类,继承体系最共性内容,是 is a关系

   接口,是继承体系的扩展内容,是 like a关系

 

9.      案例,实现接口的扩展性

  传智播客的学生 Java学科

  基础0开,就业JavaEE,冲刺 SSH

  共性内容,学习

  抽烟问题

 

10.  内部类

  将一个类,定义在另一个类的里面。

     内部类,可以直接使用外部类的成员,包括私有的

     外部类,需要使用内部类的成员,必须建立内部类的对象

     class A{

         class B{}

      }

11.  调用内部类方法

   记住三种格式,在Java语言中,凡是内部类,都是通用,静态和非静态的调用方式上的不同。

12.  局部内部类

  将,类写在外部类的方法中

  成员修饰符,不能在使用了

  调用局部内部类方法,只能通过外部类的方法实现

 

13.  成员内部类,局部内部类的接口实现

  成员内部类的接口实现

  局部内部类实现接口

  接口和多态的结合

 

14.  匿名内部类

  没有名字的

  但是匿名内部类,前提,就是需要有继承或者实现

  其实是一种简化形式,简化了,实现类的操作

  格式:

    new 接口或者父类(){

         重写抽象方法

    }.方法();

15.  包 package

l  对类文件进行分类管理

      Java中已经将自己的类,进行了分类管理

      java.lang核心包,java.util工具包,java.io输出输入流,java.awt图形界面,java.net网络程序的,java.lang.reflect反射包

l  对类提供了多层命名空间,类的名字, 全类名  包名.类名

l  包对应于操作系统,就是一个文件夹

l  定义包,必须是程序的第一行

    定义包,使用关键字package 包名(全小写)

    带包编译,编译后,包自动生成

    javac -d . XXX.java

    编译文件,生成的class文件,存储到c盘 myclass文件夹

 

    环境变量classpath指引JVM 到哪一个目录下找可以运行的class文件

    临时配置  set classpath=目录

   查看配置后的结果 set classpath

   删除临时配置 set classpath=                        

 

16.  包与包之间。类的访问

  一个包 a  另一个包b

    A          B

  写全类名,权限

 

17.  包与包之间。类的继承,第四种权限受保护

  程序中,不同包直接的类是允许继承的,只要权限足够大

  一个包b   一个包c  b包中的类,继承c包中的一个类

  Java中的四个权限

            public     protected     default     private

 同一类      ok          ok          ok          ok

 同一包      ok          ok          ok

 外包子类    ok         ok

 不同包      ok

 

18.  导入包

  import 关键字,导入包,实际导入的是包中的类

  import 包名.类名; 写在定义包的后面,定义类的前面

  使用import 关键字简化书写

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值