多态测试

/*
需求多态测试
*/
abstract class Person{
    abstract void eat();    
}

class Man extends Person{
    public void eat(){
        System.out.println("吃肉");    
    }    
    
    public void smok(){
        System.out.println("抽烟");    
    }
}

class Woman extends Person{
    public void eat(){
        System.out.println("吃蔬菜");    
    }
    
    public void shop(){
        System.out.println("购物");    
    }
}

class PersonDemo{
    public static void main(String []args){
        Person p = new Man();//向上转型,将男人强制变成人
        p.eat();//调用父类方法
        
        Man m = (Man)p;//向下转型,将男人变成人后,又变成男人
        m.smok();    //调用男人的方法
    }    
}
时间: 2024-11-05 11:16:15

多态测试的相关文章

Java面向对象练习题多态测试

按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和: (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n!): (4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现 接口的类. //Inte

多态测试_01

1.测试代码: 1 <html> 2 3 <script type="text/javascript"> 4 window.onload = function() 5 { 6 var b = new TbaseB(1); 7 b.SayHi(); 8 }; 9 10 function TbaseA(_i) 11 { 12 } 13 14 TbaseA.prototype = 15 { 16 SayHi : function() 17 { 18 console.l

c++继承、多态以及与java的行为差异之处

对于面向对象而言,多态是最有用的基本特性之一,相对于函数指针,易用得多.下面看下c++继承和多态行为的基本特性,最后说明下和java的基本差别. 首先定义父类和子类. base.h #pragma once class Base { public: int i; Base(void); ~Base(void); virtual void testDynCast(); }; base.cpp #include "stdafx.h" #include "Base.h"

java多态演示

/* 多态测试 1.前提 类和类必须是继承或者实现关系,方法之间一般会被覆盖 2.作用 提高代码扩展性 3.弊端 当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法. 访问子类特有方法需要通过instanceof关键字判断 4.体现 父类引用或者接口的引用指向了自己的子类对象.向上转型和向下转型 */ abstract interface Animal{     abstract void eat();     } class Dog imple

Java中的继承、封装、多态

继承 所谓封装,就是将对象的成员变量和成员函数包装和隐藏起来,对外界通过特定的接口来访问. public class User { private String name; public User (String name) { this.name = name; } public String getName () { return this.name; } public void sayName () { System.out.println(this.getName()); } publi

java的三大特性,封装,继承,多态

封装 Java代码   /** * 所谓封装,就是将对象具有的成员变量和成员函数包装和隐藏起来,让外界无法直接使用, * 被封装的成员只能通过某些特定的方式才能访问. * 实现封装有两个步骤: *   1.将不能暴露的成员隐藏起来,我们就不能让其在类的外部被直接访问或赋值. *      实现方法是将该成员定义为私有的,在成员定义前加上private访问权限修饰符. *   2.用公共方法来暴露对该隐藏成员的访问,可以给成员加上public修饰符,将该成员定义为公共的 */ package co

封装、继承、多态--java

0.绪论 面向对象的三大特性是封装.继承和多态.本文以java为例简述这三个概念在java语言中的具体体现. 首先说明一下,在java中,一个对象就是一个java类的一个实例.在一个java类中,包括数据成员和方法成员,其中数据成员又被称为属性,方法成员简称为方法. 1.封装 1.1 概念:封装是指把对象(即java类)的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口(接口是指外部可访问的数据成员和方法成员). 1.2 优点/产生原因: (1)安全性:类使用者只能通过暴露的接

5.4 SAP ABAP 面向对象概念 - 多态 - 摘自 《SAP ABAP面向对象程序设计:原则、模式及实践》

<SAP ABAP面向对象程序设计:原则.模式及实践> https://book.douban.com/subject/30317853/ http://www.duokan.com/shop/tbt/book/179473 https://item.jd.com/12423999.html https://e.jd.com/30429611.html 5.4 多态 5.4.1 多态的概述 多态是一个生物学和化学中的专有名词,被面计算机科学家引用到面向对象的程序设计中. 我们用柯林斯英语词典看

C语言面向对象的简便方法

都知道C语言是面向过程的,但是现在软件规模越来越大,通过面向对象的方式可以简化开发.业余时间想了个简单的方法,在C中使用一部分面向对象的基本功能.由于C语言自身的限制,并不完善,只能将就用,聊胜于无,如果大家有好的想法可以一起讨论. 首先还是老规矩上代码: http://files.cnblogs.com/GhostZCH/object.rar 面向对象有三个基本属性:封装.继承和多态. 此处一一讲解处理方法. 1. 封装,基本思想就是用结构体代替类,属性没什么好说的,方法就麻烦点只能用函数指针