ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:16.57KB ,
资源ID:5901862      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5901862.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java抽象类与接口的自学入门.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java抽象类与接口的自学入门.docx

1、java抽象类与接口的自学入门abstract class A public abstract void f();class B extends A public void f() System.out.println(哈哈); public class TestAbs_1 public static void main(String args) /A aa1 = new A(); /error A aa2 = null; /可以定义一个抽象类的引用 aa2 = new B(); /将子类对象的地址赋给抽象类的引用 aa2.f(); /用抽象类的引用访问子类的方法 这就是多态 abstract

2、 class A /如果f方法没有方法体,则必须的在class前加 abstract 如果f方法含有方法体,则class前面可加也可不加abstract ,因为“一个抽象类中是可以不包含任何抽象方法,尽管比较少见” private int i; public abstract void f(); /如果f方法没有方法体,则f方法必须的声明为抽象方法,即必须的在前面加abstractclass TestAbsClass_1 public static void main(String args) System.out.println(今天我很高兴!); /* 不能new 出抽象类对象,但可以用抽

3、象类的引用指向抽象类的子类对象,即抽象类也可以实现多态*/abstract class A abstract public void f();class B extends A public void f() System.out.println(BBB); public class TestAbsClass_2 public static void main(String args) /A aa = new A(); /error 不能new 出抽象类对象 A aa = new B(); /OK aa.f(); /多态 class A /如果在class前面加final 编译时程序就会报错c

4、lass B extends Apublic class TestFinal_1 public static void main(String args) class A /如果在class前面加final 编译时程序就会报错class B extends Apublic class TestFinal_1 public static void main(String args) /* final类型修饰的属性必须在定义的同时初始化 如果final类型修饰的属性没有在定义的同时初始化,则必须在该类中的所有构造函数中完成初始化 不过这两种初始化只能存在一种,否则编译时会报错!因为final表示常

5、量的意思,常变量当然不能被初始化两次了*/class Point int x; final double PI = 1.9; /10 final定义的变量必须在定义的同时初始化 如果这里只定义不初始化则我们就必须在所有的构造函数中完成对final变量的初始化 不过这两种方式只能选择其中的一种 Point() /PI = 1.234; /只要10行对PI进行了初始化,本语句就必须的被注释掉,否则编译时会报错! Point(int m, int n) /PI = 2.33; /只要10行对PI进行了初始化,本语句就必须的被注释掉,否则编译时会报错! void output() /PI = 2; /

6、error 因为“一个类的所有方法内部都不可以修改final修饰过的成员变量的” System.out.printf(%d %fn, x, PI); public static void main(String args) Point pt = new Point(); pt.output(); /* 在JDK 1.6中的运行结果是:-0 1.900000-*/* 接口中定义的属性的值在实现类中不能被更改 接口的属性是public static final 类型*/接口中是不可以定义构造函数的interface It int i = 10; /不能改为 int i;class A implem

7、ents It public A(int j) /this.i = j; / 接口It中的属性i 是public static final 类型,不可以在实现类中被改变 class TestInter_1 public static void main(String args) A aa = new A(10); System.out.println(aa.i = + aa.i); System.out.println(aa.i = + A.i); class Ainterface It1interface It2 /接口可以多重继承,即一个接口可以有多个父接口,但是一个类只能有一个父类,Ja

8、va类不允许多继承,接口却允许多继承interface It3 extends It1, It2interface It4 int i = 20;/一个类可以在继承一个父类的同时实现一个或多个接口,但extends关键字必须的在implements 之前class T extends A implements It4,It3class TestInter_2 public static void main(String args) System.out.println(嘿嘿!); class A public void f() System.out.printf(AAAAn); class B

9、 extends A public void f() /重写方法的权限不能低于被重写方法的访问权限 System.out.printf(BBBBn); public class TestA public static void main(String args) B bb = new B(); /bb.f(); A aa = new A(); aa.f(); aa = bb; aa.f(); /(*aa).f(); /bb = aa; /error class A public void f() System.out.printf(AAAAn); class B extends A publi

10、c void f() System.out.printf(BBBBn); public class TestA_2 public static void main(String args) A aa = new A(); B bb = new B(); aa = bb; /bb = aa; /error bb = (B)aa; bb.f(); aa.f(); abstract class A abstract public void f();class B extends A public void f() System.out.printf(BBBBn); public class Test

11、AbsPoly_1 public static void main(String args) /A aa = new A(); /error 18行 B bb = new B(); /OK bb.f(); /OK A aa; /23行 OK 可以定义一个抽象类的引用,但是不可以定义一个抽象类的对象,所以18行error, 本行OK aa = bb; aa.f(); /有抽象方法的类一定是抽象类abstract class A abstract public void f(); /没有方法体的方法叫做抽象方法, 抽象方法要求末尾必须得加分号,前面必须得加abstract/抽象类不一定有抽象方法a

12、bstract class B public void g() public class TestAbstract_1 public static void main(String args) class A final public int i = 10; /常变量 public A() i = 10; public void f() /i = 22; class TestFinal_1 public static void main(String args) class A final public void f() /如果在public前面加final,则编译时就会报错 System.o

13、ut.println(AAAA); class B extends A/ public void f()/ / System.out.println(BBBB);/ public class TestFinal_2 public static void main(String args) class A public void f() System.out.printf(AAAAn); class B extends A public void f() System.out.printf(BBBBn); class C extends B public void f() System.out.

14、printf(CCCCn); class D extends C public void f() System.out.printf(DDDDn); public class TestPoly_1 public static void g(A aa) aa.g(); /类似于C语言的: (*aa).f(); public static void main(String args) A aa = new A(); B bb = new B(); C cc = new C(); D dd = new D(); g(aa); g(bb); g(cc); g(dd); class A public void f() System.out.printf(AAAAn); class B extends A public void f() System.out.printf(BBBBn); public void g() System.out.printf(GGGGn); public class TestPoly_2 public static void main(String args) A aa = new A(); B bb = new B(); aa = bb; aa.g(); /error (*aa).g();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1