首页 / JAVA / javaOO——内部类、多态、抽象
javaOO——内部类、多态、抽象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javaOO——内部类、多态、抽象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1655字,纯文字阅读大概需要3分钟。
内容图文
![javaOO——内部类、多态、抽象](/upload/InfoBanner/zyjiaocheng/1328/b968c2e4761b4b2e83d77f25a4462508.jpg)
2、class文件的名字与Java文件的名字无关,而是与类的类名有关
3、如果类是public的,它的名字必须与java文件名保持一致,因此一篇java文件只能有一个public类
书写位置:是定义在外部类的某个方法里面的。
局部内部类除了定义的位置特殊以外,他仍是一个完整的类。
局部内部类有一种特例,叫匿名内部类
局部内部类class文件名为:外部类类名$数字内部类类名.class
它是在new对象的同时给出类的定义。所以只能产生一个对象用这一次
多态
一句话描述多态:相同的行为,不同的实现。
静态多态:编译时,系统就能决定调用哪个方法(方法重载满足相同的行为,不同的实现,是多态的一种体现,是静态多态)
动态多态:运行中系统才能动态确定方法所指的对象
1、父类引用指向子类对象
2、本类引用指向本类对象
编译通过:因为子类和父类就是is--a的关系,所以子类对象就是父类类型的,一点问题都没有。
运行通过,因为每个子类对象在产生过程中,都是采用内存叠加的方式。
先产生父类对象部分(就是一个完整的父类对象),然后再叠加子类特有。
所以,这个子类对象拥有父类类型定义的一切内容。
当使用父类引用指向子类对象的时候,该引用只能操作到该对象身上继承父类的属性或方法。
操作不到这个子类对象自己特有的属性和行为。
如果子类重写了父类的行为,那么只要对象是子类对象,不管用什么引用去指向(父类也好,子类也好),效果都会是子类重写后的效果。
1、给的是父类引用
2、因为父类引用只能那个看见来自父类的部分,所以这个方法一定要定义再父类身上,然后再子类重写。
运行时根据父类引用变量所指向对象的实际类型执行相应的子类方法吧,从而实现多态性。
---判断某个对象是否是某个数据类型
---返回类型:true,false
父类的某些方法,只能确定方法声明。
(即子类共有的方法叫什么名字,有什么参数,返回值为什么类型,访问修饰符应该是什么)
但是不能确定方法的具体实现(因为不同的子类具体的实现不同,所有具体的实现应该让子类重写)
在方法的参数列表最后用;结束
它可以在编译器,强制要求子类的实现必须重写来自父类的抽象方法。
(抽象类的子类必须重写它的抽象方法,除非子类也是抽象类)
(1)有抽象方法的类必须是抽象方法
(2)抽象类不一定有抽象方法
但是从设计上来说,如果抽象类没有抽象方法,就失去了抽象的意义了。
(3)抽象是可以通过继承传递的。
某些类的设计用途就是拿来做父类的,而不是产生对象的。
为了避免误操作,把这种类设计为抽象类。
1、该有属性、行为、构造、初始化块、内部类都可以看
2、仍然可以指向子类的对象,访问共有的属性行为。
3、与子类的关系还是is -a,甚至应该说是先考虑到is-a的关系才设计父类,再通过是否需要产生父类对象,来判定是否设定为abstract
从设计的角度看,将一个抽象方法放在父类中,可以强制任何子类实现一个特别的行为。继承抽象方法的子类如果想要实例化对象,必须重写该方法。
原文:https://www.cnblogs.com/libobo22/p/11656057.html
内容总结
以上是互联网集市为您收集整理的javaOO——内部类、多态、抽象全部内容,希望文章能够帮你解决javaOO——内部类、多态、抽象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。