多态&接口
多态
多态定义:允许一个父类变量引用子类的对象;允许一个接口类型引用实现类对象。
多态的调用:使用父类的变量指向子类的对象;所调用的属性和方法只限定父类中定义的属性和方法,不能调用子类中特有的属性和方法,
多态主要应用为多态参数和多态对象
package JobTest; abstract class Job {
public abstract void work();// 为了方便进行多态调用
} class Teacther extends Job {
@Override
public void work() {
System.out.println("上课");
}
} class Cookies extends Job {
@Override
public void work() {
System.out.println("做饭");
}
} class Driver extends Job {
@Override
public void work() {
System.out.println("开车");
}
} package JobTest; public class JobTest { public static void main(String[] args) {
Job a=new Teacther();//父类类型变量a指向子类对象teacther
Job b=new Cookies();//父类类型变量b指向子类对象Cookies
Job c=new Driver();//父类类型变量c指向子类对象Driver
a.work();
b.work();
c.work();
} }
以上实例是简单使用多态实例,父类Job分别使用变量指向子类对象Teacher/Cookies/Driver;
如果一个类继承抽象类,那么必须重写抽象类中所有抽象方法(@Override)
接口
接口可以看做抽象类的特例
接口中只能定义抽象方法,接口可以看做行为的抽象。
接口中的方法只能是public
接口中变量为public static final
public interface Iwash {
public abstract void wash();
} class Mun implements Iwash{ @Override
public void wash() {
System.out.println("手洗"); } } class Washer implements Iwash { @Override
public void wash() {
System.out.println("电机搅动"); } }
public class TestWash { public static void main(String[] args) {
Iwash w = new Mun();
w.wash(); } }
实例中建立一个Iwash接口,Mum和Wash都有wash这个行为,所以都有Iwash接口
接口用于在不同的类实例当中,共享通用行为,重用方法。
接口和多态的概念不是很难,但是在于灵活运用。
多态&接口的更多相关文章
- C#基础总结之八面向对象知识点总结-继承与多态-接口
.方法深入讲解(返回值,形参与实参) 方法 public int getName(int i,int j) { int sum = i + j; return sum; } .利用泛型存储对象数据 . ...
- php面向对象 封装继承多态 接口、重载、抽象类、最终类总结
1.面向对象 封装继承多态 接口.重载.抽象类.最终类 面向对象 封装继承多态 首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一 ...
- day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
# 多态的理解:# Python 天生自带多态# 鸭子类型 list 和 tuple 就是一对鸭子类型 很像但是没有继承关系## 而其他的类型 上传参数或者打印参数的时候 必须是指定的数据类型# -- ...
- 学习博客之Java继承多态接口
这一篇博客主要是对软工前一阶段学习的总结,主要是对Java的学习总结,包括三部分:Java的继承.多态和接口 Java的继承 继承是面向对象的三大特性之一,能够实现软件的复用. Java子类继承父类的 ...
- 1.Java基础-面向对象编程思想(封装继承多态接口)
封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的 ...
- go语言多态接口样例
感觉比java玄幻啊~~~ package main import ( "fmt" ) type notifier interface{ notify() } type user ...
- Java 多态 接口继承等学习笔记
Super关键字 1.子类可以调用父类声明的构造方法 : 语法:在子类的构造方法中使用super关键字 super(参数列表) 2.操作被隐藏的成员变量(子类的成员变量和父类的成员变量重名的说法)和 ...
- Java第4次实验提纲(面向对象2-继承、多态、抽象类与接口与Swing)
PTA 题集面向对象2-进阶-多态接口内部类 第1次实验 1.1 题集5-1(Comparable) 难点:如果传入对象为null,或者传入对象的某个属性为null,怎么处理? 1.2 题集5-2(C ...
- java接口,接口的特性,接口实现多态,面向接口编程
package cn.zy.cellphone; /**接口是一种引用数据类型.使用interface声明接口,形式 * 形式:public interface 接口名称{} * 接口不能拥有构造方法 ...
随机推荐
- eas之编辑界面中分录默认携带的标题栏
this.kdtEntrys_detailPanel.setTitle("物件内容"); KDContainer kdtEntrys_Container = (KDContai ...
- 【剑指Offer】56、删除链表中重复的结点
题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4-> ...
- 11.6 【Linq】分组和延续
11.6.1 使用 group...by 子句进行分组 class Program { static void Main(string[] args) { var query = from defec ...
- Google Shell Style Guide
转自:http://google.github.io/styleguide/shell.xml Shell Style Guide Revision 1.26 Paul Armstrong Too m ...
- 然而,该来的还是来了(Diary)
2017-05-07 LG月赛成功炸掉...发现自己真的好多东西不会啊.对某些知识仅仅有最基础的一点理解啊!连线段树都理解不了怎么办?归并排序(including分治+贪心)全部炸掉啊.感觉自 ...
- Redis 应用场景【商品拼团抢购】
使用到 redis-list llen 命令:获取列表的长度,如果列表key不存在那么也是返回0,如果给的key不是一个列表类型会返回一个错误 lpush命令:将值插入到列表头部,如果 key 不存在 ...
- JAVA版本号微信公众账号开源项目版本号公布-jeewx1.0(捷微)
JeeWx, 敏捷微信开发,简称"捷微". 捷微是一款免费开源的微信公众账号开发平台. 平台介绍: 一.简单介绍 jeewx是一个开源,高效.敏捷的微信开发平台採用JAVA语言,它 ...
- 谈论java中怎样处理高并发的问题
1 从最基础的地方做起,优化我们写的代码,降低必要的资源浪费. a.避免频繁的使用new对象.对于整个应用仅仅须要存在一个实例的类.我们能够使用单例模式. 对于String连接操作,使 ...
- [Cypress] Load Data from Test Fixtures in Cypress
When creating integration tests with Cypress, we’ll often want to stub network requests that respond ...
- Cocos2d-x 3.0final 终结者系列教程13-贪食蛇游戏案例(全)
快过节了.谢谢了屈原,我们爱你. 应该多几个向屈大人一样跳江的,这样我们就能够放假纪念啦. ---------------------------------快过节了.弄个案例,大家最好还是假期做做, ...