收藏 分享(赏)

第7讲+Java的接口、抽象类与包.ppt

上传人:kpmy5893 文档编号:4607301 上传时间:2019-01-04 格式:PPT 页数:26 大小:196.50KB
下载 相关 举报
第7讲+Java的接口、抽象类与包.ppt_第1页
第1页 / 共26页
第7讲+Java的接口、抽象类与包.ppt_第2页
第2页 / 共26页
第7讲+Java的接口、抽象类与包.ppt_第3页
第3页 / 共26页
第7讲+Java的接口、抽象类与包.ppt_第4页
第4页 / 共26页
第7讲+Java的接口、抽象类与包.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、第7讲 Java的接口、抽象类与包,回顾,Java类和对象的概念类的结构以及如何生成对象类的3大特性:封装,继承,多态打包的使用以及访问控制符,类和对象的高级特性,抽象类和抽象方法接口的使用内部类的使用,抽象类和抽象方法,关键字是abstract 抽象类 定义抽象类的目的是提供可由其子类共享的一般形式,子类可以根据自身需要扩展抽象类。 抽象类不能实例化,只能用于继承 抽象方法 没有函数体。 抽象方法必须在子类中给出具体实现。abstract和final、static、private不能同时使用,abstract 修饰符可与类和方法一起使用,抽象类和抽象方法(续),在以下情况下,某个类将成为抽象

2、类: 当类的一个或多个方法为抽象方法时。 当类是一个抽象类的子类,但没有为所有抽象方法提供实现细节或方法主体时。 当类实现了一个接口,但没有为所有抽象方法提供实现细节或方法主体时。 注意:抽象类可以包含非抽象方法,也可以一个抽象方法都没有,但只要有一个抽象方法就是抽象类(参见程序GraphicDemo),接口,public interface InterfaceExample int i=4;int k=5;void func1();int func2(int x); ,若抽象类中的所有方法都是抽象的,则该类可用另一种方式定义,即接口,关键字interface 接口是抽象方法和常量定义的集合,

3、接口的访问修饰符只有public和friendly 接口的成员变量隐含为public、static、final,必须赋初值。 接口的成员方法隐含为public、abstract 接口是抽象类的进一步升华,它只提供一个框架,具体代码由实现接口的类完成 接口和抽象类的不同在于,它为无关的类实现同样功能提供了可能,Java设计接口就是为了实现多继承的功能,而抽象类只能由继承链上的类实现,接口的特性,接口的实现,interface Interface1 int k=5;void func1(); public class Class1 implements Interface1 public void

4、 func1() System.out.println(“ func1=“+k); ,关键字implements:类继承接口的关键字,接口实现多重继承,一个类可以实现多个接口。 实现接口的类必须给出接口中所有方法的实现代码,最少要有一对大括号,而且必须在实现方法前加public关键字,若只实现部分方法,则该类成为抽象类。 用接口可定义一个引用变量,该引用可指向任何实现该接口的类的对象,即接口引用可指向实现类对象。,接口的实现(续),interface Interface1int i=4;void func1(); interface Interface2int k=5;void func2()

5、; class Class2 public void func2() System.out.println(“func2 in class2“); public class Class1 extends Class2 implements Interface1,Interface2 问题:为什么Class1前int j; 不加abstract?public void func1() System.out.println(“func1 in Class1“); ,接口实现多重继承(续),通过实现多个接口来达到继承多个类的目的 在程序中如果同时继承类和实现接口,则必须把类写在前面,接口写在后面;若

6、实现多个接口,接口之间用逗号分开 接口与接口的继承关键字为:extends 接口之间可以多重继承(见下页),interface Interface1 int i=4;void func1(); interface Interface2 int k=5;void func2(); interface Interface3 extends Interface1,Interface2 int j=6;void func3(); public class Class3 implements Interface3 int m;public void func1()public void func2()p

7、ublic void func3() ,接口引用,接口可作为一种引用类型来使用,不需要了解对象所对应的具体的类,而是着重于它的交互界面。任何实现该接口的类的实例都可以存储在该接口类型的变量中(类似父类引用指向子类对象),通过这些变量可访问类所实现的接口中的方法。参见程序InterfaceDemo1,类的多种使用方法,内部类 成员类 局部类 匿名类,内部类,定义在另一个类中的类称为内部类,内部类可分为 成员类:类似于成员变量,定义在外部类所有方法之外, 局部类:类似于局部变量,定义在外部类某个方法之内,成员类,成员类可访问外部类成员,外部类不能直接访问成员类成员,只能通过成员类对象引用访问 参考

8、InnerClassDemo1 成员类可以声明为private或protected 根据成员类前是否有static修饰,在外部类之外创建成员类对象分两种情况,成员类(续),无static修饰:先创建外部类对象,再由外部类对象创建内部类对象 OutClass outer=new OutClass(); OutClass.InClass in=outer.new InClass(); 参考InnerClassDemo 有static修饰:直接创建内部类对象 OuterClass.InClass in=new OuterClass.InClass(); 参考InnerClassDemo2,包装类,使

9、用8种基本数据类型声明的变量不是对象 JAVA提供包装类,可以将基本数据类型当作对象操作 每种基本数据类型都有对应的包装类对应关系如下表:,包装类,Java包(package),当编译Java源程序时,对其中的每个类都生成一个.Class文件,为统一组织和管理它们,Java使用了包 包类似于文件夹,一组相关的类被放在一起建议每个文件只写一个类,然后用包将相关的类进行组合,包的用途,包允许你将类文件组织起来,便于查找和使用合适的类。 包不仅包含类和接口,还能包含其它包,从而形成有层次的包空间。 包有助于避免命名冲突。当你使用很多类时,确保类和方法名称的唯一性是非常困难的。包能够形成层次命名空间,

10、缩小了名称冲突的范围,易于管理名称。,使用包,创建包package mypackage; 访问 Java 包成员mypackage.My_Class 导入包 import package_name.*; 导入子包 import package_name.Student.* 示范一个打包,并访问包内的CLASS,包的访问权限,public-公共 所有类都可以访问protected-保护 可被子类访问,不管是同一个包还是不同包 同一个包中非子类需要通过对象访问private-私有 只有自身类才能访问,其它类一概不能访问friendly-友好(默认,不是关键字) 可被同一包的所有的类访问,访问权限,总结,类的静态成员抽象类和抽象方法接口的使用内部类的各种写法,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报