package test1;
//多态的体现
import javax.print.attribute.standard.RequestingUserName;
import java.util.Scanner;
public class testfather {
public static void main(String[] args)
{
Animal a = new fish(); //父类对象被赋以子类类型
/*Animal a;
fish b = new fish b;
a= b;      //向上转型,不丢失精度
a.talk();*/ //可达到相同效果
a.talk(); //fish覆写animal talk方法
Animal c = new bird();
//C.talk2(); //不能实现,因为animal中没有此方法,必须向下转型
bird b = (bird)c; //如果不进行转换,父类无法看到子类新扩充的方法
b.talk2();
}
}
class Animal
{
public void talk() //如果父类方法不想被覆写,可改为public static void talk()
{
System.out.println("walk");
}
}
class fish extends Animal
{
public void talk()
{
System.out.println("swim");
}
}
class bird extends Animal
{
public void talk()
{
System.out.println("fly");
}
public void talk2()//父类中没有此方法,调用必须进行强制转换,向下转型。
{
System.out.println("i am a bird");
}
}

java 多态 ---父类调用子类方法的更多相关文章

  1. Java 多态 父类和子类方法的访问控制权限

    Java 多态 父类和子类方法的访问控制权限 @author ixenos 父类和子类方法的访问控制权限 继承是为了扩展类的功能,而这种扩展显然就是对一个原始类的扩展,目的还是向上转型来调用,所以这就 ...

  2. php 父类调用子类方法和成员

    在C和C++里,父类都不允许调用子类的方法,但在php里可以.下面是一个调用的例子: <?php abstract class Animal { protected $name; public ...

  3. PHP面向对象-看父类调用子类方法

    大部分面向对象编程语言中,父类是不允许调用子类的方法的,但是PHP中可以 1.父类调用子类方法示例 class A { public function testa() { $this->test ...

  4. 多态&&父类调用子类特有的方法

    /* 多态 1.没有继承就没有多态 2.代码的体现:父类类型的指针指向子类对象 3.好处:如果函数\方法参数使用的是父类对象,可以传入父类.子类对象 4.局限性: 1>父类类型的变量,不能直接调 ...

  5. Java特性之多态父类与子类之间的调用

    问题描述: Java三大特性,封装.继承.多态,一直没搞懂其中多态是什么,最近研究了一下,关于父类和子类之间的调用.下面是一个测试类,源代码如下: package com.test; public c ...

  6. Java父类与子类方法调用顺序

    父类 FatherClass package 父类与子类方法调用顺序; /** * 父类 * @author shundong * */ public class FatherClass { priv ...

  7. php面向对象编程 父类调用子类编程

    使用父类调用子类的实现代码

  8. java反射与多态(父类调用子类)的代码演示

    package Test0817; import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method ...

  9. Java多态 父类引用指向子类对象

    Java多态的三个必要条件: 1. 继承 2. 子类重写父类方法 3. 父类引用指向子类对象 然后看一个例子 输出结果为: 给出结论:Father  c  =  new  Child()    在c的 ...

随机推荐

  1. SpringMVC+FreeMarker实现静态资源文件自动添加版本号(md5)

    近日切换java开发,开始学习springframework.在实现静态资源文件自动计算版本号的实例时,因为不熟悉框架,走了不少弯路,好在最终解决了问题.这里写篇文章记录一下实现,也希望对大家有些用处 ...

  2. 去掉chrome浏览器中input获得焦点时的带颜色边框呢

    可以设置表单控件的outline属性为none值, 来去掉Chrome浏览器中输入框以及其它表单控件获得焦点时的带颜色边框. css代码如下: input{outline:none}

  3. Maven json包找不到解决办法

    在Maven中央仓库找到Maven的jar <dependency> <groupId>net.sf.json-lib</groupId> <artifact ...

  4. maven The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path错误

    对于这个问题的话,请在pom文件中加入 <dependency> <groupId>javax.servlet</groupId> <artifactId&g ...

  5. Linux服务器上安装MySql数据库(默认安装,密码为空),首次使用需要修改密码

    1,在/etc/my.cnf末尾  加入skip-grant-tables,保存,跳过身份验证. 2,重启MySql,使刚才修改的配置生效. 3,终端输入mysql,然后再输入use mysql; 4 ...

  6. iOS——系统提供的dispatch方法

    // 后台执行: dispatch_async(dispatch_get_global_queue(0,0), ^{ // something }); // 主线程执行: dispatch_async ...

  7. UVA - 1632 Alibaba 区间dp

    题意:给定n个点,其中第i个点的坐标是,且它会在秒后消失.Alibaba可以从任意位置出发,求访问完所有点的最短时间.无解输出No solution. 思路:表示访问完区间后停留在i点的最短时间,表示 ...

  8. CodeForces-747B

    在两种情况下不能得到答案:1.n不是4的整数倍 2.某个字符的数量大于n/4 如果满足上述条件直接打印"===",否则填充数组. AC代码: #include<cstdio& ...

  9. nginx的环境配置的问题

    在安装好nginx之后,运行nginx,报错: nginx dyld: Library not loaded: /usr/local/lib/libpcre.1.dylib Referenced fr ...

  10. 我的Java设计模式-原型模式

    "不好意思,我是卧底!哇哈哈哈~"额......自从写了上一篇的观察者模式,就一直沉浸在这个角色当中,无法自拨.昨晚在看<使徒行者2>,有一集说到啊炮仗哥印钞票,我去, ...