java日常学习:多态
来源:互联网 发布:淘宝店铺神笔在哪里 编辑:程序博客网 时间:2024/05/16 06:23
java代码块
多态
多态: 父类的引用类型变量指向了子类的对象 或者是接口的引用类型变量指向了接口实现类对象。
多态的前提: 必须存在继承或者实现关系。
多态要注意的细节:
1. 多态情况下,子父类存在同名的成员变量时,默认是访问父类的成员变量。
2. 多态情况下,子父类存在同名的非静态成员函数时,默认是访问子类的成员函数。
3. 多态情况下,子父类存在同名的静态成员函数时,默认是访问父类的成员函数
4. 多态情况下,不能访问子类特有的成员。
多态情况下,不能访问子类特有的成员。
多态情况下如果需要调用到子类特有的成员,那么需要进行强制类型转换。
基本数据类型:
小数据类型----->大数据类型 自动类型转换大数据类型----->小数据类型 强制类型转换。
引用数据类型转换:
小数据类型----->大数据类型 自动类型转换大数据类型----->小数据类型 强制类型转换
实现关系下 的多态 : 接口的引用类型变量指向了接口实现类的对象。
多态的前提: 存在继承或者实现的关系。
练习
/*需求: 定义了图形、 矩形、 圆形三个类,所有的图形都具备计算面积与周长的方法,只不过每种图形计算方式并不一致,。要求: 1. 定义一个方法可以接受 任意类型的图形对象,在方法内部调用图形周长与面积的方法。 2. 定义一个方法可以返回任意类型的图形对象。*/abstract class MyShape { public abstract void getArea(); public abstract void getLenght();}class Rect extends MyShape { int width; int height; public Rect(int width,int height){ this.width = width; this.height = height; } public void getArea(){ System.out.println("矩形的面积是:"+width*height); } public void getLenght(){ System.out.println("矩形的周长是:"+2*(width+height)); }}class Circle extends MyShape { public static final double PI = 3.14; double r; public Circle(double r){ this.r = r; } public void getArea(){ System.out.println("圆形的面积是:"+PI*r*r); } public void getLenght(){ System.out.println("圆形的周长是:"+2*PI*r); }}class demo1 { public static void main(String[] args) { /* Rect r = new Rect(3,4); Circle c = new Circle(3.0); print(c); */ MyShape m = getShape(1); m.getArea(); m.getLenght(); } //定义一个方法可以接受 任意类型的图形对象,在方法内部调用图形周长与面积的方法; public static void print(MyShape m){ m.getArea(); m.getLenght(); } //定义一个方法可以返回任意类型的图形对象; public static MyShape getShape(int i){ if (i==0) { return new Circle(3.0); }else{ return new Rect(3,4); } }}
用于平时自己复习回顾,如有错误,欢迎指正
阅读全文
0 0
- java日常学习:多态
- java日常学习:继承
- java日常学习:TreeSet
- java日常学习:泛型
- java日常学习:jar包
- java ssm学习日常小问题
- java日常学习:数组小练习
- Java学习日常——泛型
- java日常学习:封装及其使用
- java日常学习:构造函数练习
- java日常学习:单例设计模式
- java日常学习:异常和finally块
- java日常学习:System系统类
- java日常学习:集合(一)
- java日常学习:StringBuffer常见使用方法
- java日常学习:事件(简要版)
- java日常学习:map双列集合
- 日常学习
- WordPress上传文件大小限制修改
- matlab函数】conv2、filter2、imfilter的区别
- python_dict
- HDU 5536 Chip Factory
- Apache和Nginx优缺点对比
- java日常学习:多态
- python3 mysql
- 杭电acm用Java一直不通过
- 入阵曲(luogu3941)
- opencv实现中值滤波器
- 机动车驾驶培训学校驾校类完整网站织梦模板(带手机端)
- 画圆
- lvm的应用和配置
- 信号量例子