java面向对象- 多态性的体现和使用

  1. 多态体现:

方法的重载和重写

对象的多态性

2.对象的多态性:

向上转型:程序会自动完成

父类 父类对象 = 子类实例

向下转型:强制类型转换

子类 子类对象 = (子类)父类实例

class A{
	public void tell01(){
		System.out.println("A--tell01");
	}
	public void tell02(){
		System.out.println("A--tell02");
	}
}

class B extends A{
	public void tell01(){
		System.out.println("B--tell01");
	}
	public void tell03(){
		System.out.println("B--tell03");
	}
}

public class PolDemo01 {

	public static void main(String[] args) {
		//向上转型
//		B b = new B();
//		A a = b;
//		a.tell01();//tell01重写的
//		a.tell02();
		//向下转型
		A a = new B();
		B b = (B)a;
		b.tell01();
		b.tell02();
		b.tell03();
	}

}

运行结果:

向上转型:                                  向下转型:

B--tell01                                   B--tell01

A--tell02                                   A--tell02

B--tell03

3.对象多态性的使用:

class A1{
	public void tell01(){
		System.out.println("A--tell01");
	}
}

class B1 extends A1{
	public void tell02(){
		System.out.println("B--tell02");
	}
}

class C1 extends A1{
	public void tell03(){
		System.out.println("C--tell03");
	} 
}

class D1 extends A1{

}

public class PolDemo02 {

	public static void main(String[] args) {
		say(new B1());
		say(new C1());
		say(new D1());
	}

	public static void say(A1 a){
		a.tell01();
	}

}

执行结果:

A--tell01

A--tell01

A--tell01

时间: 2024-12-28 06:53:21

java面向对象- 多态性的体现和使用的相关文章

Java面向对象-对象的多态性

Java面向对象-对象的多态性 Java中的多态性表现: 1,方法的重载和重写(覆盖): 2,可以用父类的引用指向子类的具体实现,而且可以随时更换为其他子类的具体实现: 我们先搞个父类Animal: 1 package com.java1234.chap03.sec13; 2 3 public class Animal { 4 5 public void say(){ 6 System.out.println("我是一个动物"); 7 } 8 } 再搞两个子类,分别是Dog和Cat类,

java面向对象编程(七)--四大特征之多态

1.多态概念 多态性是对象多种表现形式的体现.比如我们说"宠物"这个对象,它就有很多不同的表达或实现,比如有小猫.小狗.蜥蜴等等.那么我到宠物店说"请给我一只宠物",服务员给我小猫.小狗或者蜥蜴都可以,我们就说"宠物"这个对象就具备多态性. java中的多态,就是指一个引用(类型)在不同情况下的多种状态.也可以理解成,多态是指通过指向父类的指针,来调用在不同子类中实现的方法.也可以理解为"一个接口,多个方法". 实现多态有两种

java面向对象(串)

面向对象的三条主线:1.类及类的成分 2.面向对象的三大特性  :封装.继承.多态3.其他的关键字:this super import package abstract static final interface等 1.java程序是关注于类的设计.类从代码的角度:并列关系! 从执行.设计的角度:关联关系.继承关系.聚合关系class A{ } class B{ A a = new A();}2.类的成分:属性 方法 构造器 代码块 内部类 2.1 属性:①变量的分类:成员变量(属性 Fiel

第6篇-JAVA面向对象Ⅱ

第6篇-JAVA面向对象Ⅱ 每篇一句 :敢于向黑暗宣战的人,心中必定充满光明 初学心得: 面向对象 春暖花开 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-05| JAVA面向对象 Ⅱ] 1.JAVA面向对象三大特征 1.封装(Encapsulation); 2.继承(Inheritance); 3.多态(Polymorphism) 2.面向对象 之 封装 什么是封装? 封装就是隐藏实现细节,仅对外提供访问接口 封装的类型有:属性封装.方法封装.类封装.组件封装.模块化封装

Java面向对象详解

Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵懵懂懂,后来实践的多了,有些东西才慢慢清 楚:二是经过一定的实践之后,反过头来再去学习一些基础东西才能够理解的更透彻:三是有些东西基础但是确很重要,是值得好好搞一搞的. 1.面向对象 面向对象(Object Oriented)是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),

Java面向对象的多态

Java中多态的概念是面向对象中除封装和继承外非常重要的知识点,也是Java面向对象三大特性最后一个特性 多态其实就是指对象存在的多种形态,多态分为引用多态和方法多态 引用多态的含义就是:父类的引用可以指向它本类的对象,不仅如此父类的引用还可以指向子类的对象,这就是引用多态 用简单的代码来看一下引用多态的含义: 动物类:Animal 1 public class Animal { 2 public Animal(){ 3 System.out.println("Animal类的构造方法被执行&q

JAVA面向对象理解

做测试也挺久了,大学时没有认真学会java,现在各个企业对测试人员要求越来越高,掌握编程语言的已经成了必备的技能:自己也断断续续学了很多次java,但都没有好好得把java学好,在要面临跳槽时总觉得自己的简历上总是少些亮点.终于下定决心,每天抽出2个钟学习java,为了在以后的简历中可以写上懂得java. 一.面向对象 现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类.书桌.计算机.高楼大厦等.把解决问题的方式简单化,于是就会思考这些对象是由哪些部分组成.通常对象分两部分:静

java面向对象(三)理论

面向对象的基本特性 封装 封装性就是尽可能的隐藏对象内部细节,对外形成一道边界,只保留有限的接口和方法与外界进行交互.封装的原则是使对象以外的部分不能随意的访问和操作对象的内部属性,从而避免了外界对对象内部属性的破坏.可以通过对类的成员设置一定的访问权限,实现类中成员的信息隐藏. private:类中限定为private的成员,只能被这个类本身访问.如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例. default:类中不加任何访问权限限定的成员属于缺省的(default

Java面向对象----个人参考资料

Java面向对象 :什么是面向对象.类与对象.封装.构造方法.static关键字.继承.抽象类.接口.多态 一.什么是面向对象 1.面向过程思想 面向过程:(PO,Procedure Oriented) 在理解面向对象思想之前,我首先来回顾一下以前C语言中的面向过程思想,面向过程思想强调的是过程(动作),在面向过程的开发中,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然而由这些功能方法相互调用,完成需求.面向过程的典型代表语言是:C语言. 2.面向对象思想 面向对象:(OO,