多态,抽象类,接口,在Java中的应用
目录
多态
- 多态的概述
- 多态的成员访问特点
- 多态的好处和弊端
- 向上转型和向下转型
- 多态内存图
抽象类
- 抽象类的概述
- 抽象类的成员特点
- 抽象类的案例
接口
- 接口的概述
- 接口的成员特点
- 类与类,类与接口,接口与接口的关系
- 抽象类与接口的区别
- 接口的案例
多态
多态:某一个事物,在不同时刻表现出来的不同状态。
举例:Cat c=new Cat();Animal a=new Cat();猫可以是猫的类型。猫 m = new 猫();
同时猫也是动物的一种,也可以把猫称为动物。动物 d = new 猫();
ps :( 多态中必须有继承关系,要有方法重写,也可以没有方法重写但这样的多态是没有意义的,要有父类应用指向子类对象)
代码演示
public class MyTest {public static void main(String[] args) {Cat cat = new Cat();cat.eat();//我没有删除super.eat()所以就有二个吃饭内容cat.play();System.out.println("-----------------------");Animal an = new Cat();//多态演示,要有父类引用指向子类对象an.eat();System.out.println("-----------------------");Gog gog = new Gog();gog.eat();gog.seedoor();System.out.println("--------------------------");Gog an2= new Gog();//多态演示,要有父类引用指向子类对象an2.eat();}
}
class Animal{public void eat(){System.out.println("吃饭");}
}
class Cat extends Animal{@Overridepublic void eat() {super.eat();System.out.println("吃鱼");}public void play(){System.out.println("抓老鼠");}
}
class Gog extends Animal{@Overridepublic void eat(){System.out.println("吃骨头");}public void seedoor(){System.out.println("看门");}
}
如果采用了多态的这种方式,子类重写了父类的方法,那么我在用父类引用调用方法时,会以子类重写过后的为准
多态中成员访问特点
- 成员变量:编译看左边,运行看左边。
- 构造方法:创建子类对象的时候,会访问父类的构造方法,对父类的数据进行初始化。
- 成员方法:编译看左边,运行看右边。
- 静态方法:编译看左边,运行看左边。
ps:(静态和类相关,算不上重写,所以,访问还是左边的)
代码演示
public class MyTest2 {public static void main(String[] args) {Fu an = new Zi();System.out.println(an.num);//多态的形式访问成员变量访问还是父类成员变量an.show();//多态的形式调用方法,首先看这个方法父类里面有没有,如果没有就报错,有的话就访问子类方法an.test();//多态的形式调用静态方法还是运行的是父类方法Fu.test();Zi.test();}
}
class Fu{int num=100;
public void show(){System.out.println("fushow");
}
public static void test(){System.out.println("futest");
}
多态,抽象类,接口,在Java中的应用相关推荐
- 继承 多态 抽象类 接口
面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...
- day09 多态抽象类接口
多态抽象类接口 1:final关键字可以干什么?有什么特点? 2:final关键字的面试题? 3:多态是什么,前提是什么? 4:多态中成员访问的特点? 5:多态的好处及弊端?如何解决多态的弊端? 6: ...
- Java编程基础10——面向对象_多态抽象类接口
1.多态的概述及其成员访问特点代码体现 A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提- 1.要有继承关系 2.要有方法重写 3.要有父类引用指向子类对象. C:多态中的成员 ...
- java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口
数组:arr 获取数组的长度:arr.length 数组转字符串: Arrays.toString(arr) 数组的拷贝: Arrays.copyOf(arr,arr.length) 数组的排序:Ar ...
- 初始Java Java SE 包,继承,组合,多态,抽象类,接口
目录 包 1.静态导入 2.将类放到包中 3.包的访问权限控制 继承 基本语法: 注意事项: protected 关键字 final 关键字 组合 多态 向上转型: 动态绑定 方法重写 重写的规则 : ...
- java 多态 接口_从零开始的Java日常: 多态,抽象类,接口
欢迎关注微博:@小白程序员的日常 欢迎关注微博超话:#小白程序员的日常# 本人目前在自学java,会不间断更新java知识 同为小白或者有大佬可以一起探讨一下 一.多态 1.什么是多态 同一个对象,在 ...
- JavaSE 多态 抽象类 接口
day09目录: 多态(动态绑定机制)多态的概述多态的成员访问特点多态的好处和弊端向上转型和向下转型多态内存图 抽象类抽象类的概述抽象类的成员特点抽象类的案例 接口接口的概述接口的成员特点类与类,类与 ...
- object+多态+抽象类+接口
一.object 定义:object是java所有类的父类,Java中所有类都直接或间接的继承object,Java是单继承机制·,·一个类如果没有显示继承其他类时,就默认他继承object类 常用方 ...
- java自定义外部接口_如何使用可外部化的接口在Java中自定义序列化
java自定义外部接口 在上一篇文章"用示例介绍的有关Java序列化的一切"中 ,我解释了如何使用以下方法序列化/反序列化一个对象 Serializable接口,还说明了如何使用w ...
- java中抽象类继承抽象类_用Java中的抽象类扩展抽象类
java中抽象类继承抽象类 示例问题 当我创建Java :: Geci抽象类AbstractFieldsGenerator和AbstractFilteredFieldsGenerator我遇到了一个不 ...
最新文章
- 几种特征选择方法的比较,孰好孰坏?
- TMSScripter演示
- 数学建模——ARIMA时间序列预测模型Python代码
- JavaScript实现regular-expression-matching正则表达式匹配算法(附完整源码)
- 从面试蚂蚁失败反思-缓存穿透技术
- Leetcode刷题实战(1):Two Sum
- 第10课 古埃及金字塔 《小学生C++趣味编程》
- java bufferedrandomaccessfile_java 读写操作大文件 BufferedReader和RandomAccessFile
- 我们都在深夜,参差不齐地入眠
- [深入浅出WP8.1(Runtime)]文本框(TextBox)
- ModelSim入门教程和两个典型例子
- 刷脸支付打造了一个无卡交易的时代
- win10命令提示符cd 不到指定路径的解决
- matlab线性规划的最优化,【OR】Matlab求解最优化问题(1) 线性规划
- 什么是项目风险?如何做好项目风险管理
- 我用Python实现自动化办公,美女同事投来羡慕的眼神,而后···
- bat脚本,windown定时关机,取消定时关机,设置延长关机时间
- php laravel 教程,Laravel 入门到精通教程
- Jerry号召广大程序员同仁们,把身体锻炼好,每天把砖搬起来
- 【2023提前批 之 面经】~ 联发科