Java之多态,抽象类,接口
2018-01-14 11:47
351 查看
Java之多态,抽象类,接口
Java三大属性:继承,封装,多态。今天就介绍一下它的多态性。1.多态
多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数实现的。多态存在的三个必要条件:
要有继承关系
要有方法重写
要有父类引用指向子类对象(格式:Father fa = new Son())
实例一
public class DuoTai { public static void main(String[] args) { Teast t1=new Fenjiu(); //用接口名创建对象 String result=t1.say(); //result用于接收返回值 System.out.println(result); Teast t2=new Xhuac(); t2.say(); //不需接收返回值 } } interface Teast{ //接口Teast String say(); //接口没有方法体 } class Fenjiu implements Teast{ @Override //重写 public String say() { System.out.println("汾酒好喝!"); return "fj"; } } class Xhuac implements Teast{ @Override public String say() { System.out.println("杏花村好喝!"); return null; }
结果1
2.抽象类
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。
抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
实例二
package com.Hwadee; /** *抽象类 */ public class Abstract { public static void main(String[] args) { Rect rect=new Rect(3,5); Circle circle=new Circle(3); System.out.println("长方形周长:"+rect.getLen()+"长方形面积:"+rect.getArea()); a69e System.out.println("圆周长:"+circle.getLen()+"圆面积:"+circle.getArea()); } } abstract class Myshape{ double len; double area; public Myshape() { } public Myshape(double len, double area) { this.len = len; this.area = area; } } class Rect extends Myshape{ double length; double width; public Rect() { super(); // TODO Auto-generated constructor stub } public Rect(double length, double width) { super(); this.length = length; this.width = width; } public double getLen(){ return 2*(length+width); } public double getArea(){ return length*width; } } class Circle extends Myshape{ double r; final double pi=3.1415; public Circle() { } public Circle(double r) { super(); this.r = r; } public double getLen(){ return 2*pi*r; } public double getArea(){ return pi*r*r; } }
结果二
3.接口
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。实例三
package com.Hwadee; /** *利用接口实现Java多继承 */ public class Interface { public static void main(String[] args) { Pencil p=new Pencil("中华"); p.write(); p.clean(); p.shine(); } } class Pen{ String name; Pen(String name){ } public void write(){ System.out.println("用笔写字!"); } } interface Eraser{ //橡皮的接口 public void clean(); } interface Light{ public void shine(); } class Pencil extends Pen implements Eraser,Light{ //Pencil类继承Pen,实现Eraser,Light接口 Pencil(String name) { //构造函数 super(name); } @Override public void write(){ System.out.println("用带橡皮擦的铅笔写字!"); } @Override public void clean() { System.out.println("用橡皮-->擦!"); } @Override public void shine() { System.out.println("带闪光!"); } }
结果三
相关文章推荐
- Java基础学习中,关于面向对象中多态、抽象类、接口的总结
- [Java] 继承,隐藏,覆盖,重载,多态,抽象类,接口
- Java基础学习笔记09——(final关键字,多态,抽象类,接口)
- Java中多态、抽象类和接口
- java详解final、多态、抽象类、接口原理
- 黑马程序员---java基础---多态,抽象类,接口
- 黑马程序员——JAVA基础----多态、抽象类和接口
- Java笔记(八) 多态、抽象类、final关键字和接口
- JAVA-6-继承、super、final、多态、抽象类、接口
- java详解final、多态、抽象类、接口原理
- java之动态绑定(多态)、抽象类、接口【6】
- java基础之多态、接口、抽象类
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- 多态、抽象类、接口、区别(java基础知识九)
- Java面向对象思想、类、抽象类、多态、接口
- 黑马程序员-java学习继承之抽象类、多态和接口
- Java-多态,抽象类,接口
- java 继承 方法重写 自动转型 多态 接口 抽象类
- Java基础笔记-继承、抽象类、接口、多态、内部类、异常
- java继承多态和抽象类接口