您好,欢迎访问三七文档
抽象类2、final关键字final修饰变量,该变量只能赋值一次,如果作为成员变量必须有初始值(定义初始化or构造函数初始化)finla修饰函数,该函数不能被重写final修饰类,该类不能被继承,这个类是断子绝孙的filna和abstract是不能一起使用的private和abstrac也不能组合3、接口接口是一个标准,更多的体现能干什么can-do抽象类是体现的继承is–a关系接口用interface关键字声明,地位等价于类的地位,同样会产生.class文件接口中所有的方法都是publicabseract的,即使没有这样声明,所以所有方法在接口中都不能实现。定义了一个canfly接口,我们认为在编程中,实现了这个接口的类的对象就是具备了飞的功能了、实现的时候用implements关键字实现接口,必须重写接口中的抽象方法,否则自己变成抽象类,需要用abstract声明。接口是不能实例化,接口中不能有构造函数的,全部都是抽象的方法看到接口的引用,引用的一定是实现了该接口的类的对象如何理解接口,主板制造一个类可以实现多个接口(具备多个标准,具备多个功能)就需要实现接口中的所有方法一个类可以继承一个类同时实现多个接口、Java中是单一继承,但是接口与接口之间可以进行多继承,就是一个接口可以由多个接口继承而来。接口中甚至可以没有任何方法,就是一套标准。Serializable\cloneable接口中可以声明变量,接口中声明的变量都是publicstaticfinal的,即使没有这样声明默认也是这样的。接口中有非常多的方法,而我们再用的时候,每次只用个别的方法,非常麻烦吗,可以写一个适配器类,这种适配器类一般都是抽象的,明确指定不需要对象。什么是抽象类:只要是abstract声明的类,就是抽象类。4、内部类成员内部类,直接在外部类的其他成员中访问,创建内部类的对象(最简单最常用的)如果成员内部类的访问权限为非private直接访问就可以outer.Innerinner=outer.newInner(参数);类型.this成员内部类中访问外部类的当前对象静态内部类直接在外不累成员中访问(简单常用)如果非private直接创建对象,outer.Innerinner=newouter.Inner();静态内部类中只能访问外部类的静态成员。局部内部类一般声明在某个函数的内部,只在该函数内有效,一样会产生class文件匿名内部类什么时候用?已经知道父类,获取其子类的实例对象已经知道接口,获取实现了该接口的类的对象匿名类在用的时候必须是直接获取该匿名类的对象怎么用?怎么获取对象呢?公式:new父类or接口(){子类的实现or(实现了该接口的类的实现)}公式得到的是匿名类的对象,实现了该接口(继承了该抽象类)的类的实例上面的公式看起来是一样的,但是要注意有区别的New父类(可以给父类的构造函数传递参数){子类实现}接口不存在这个问题,接口是没有构造函数的。注意:在内部类中访问局部变了,该表里必须声明为final
本文标题:JAVA抽象类
链接地址:https://www.777doc.com/doc-2881038 .html