创建父类:

 package org.hanqi.pn0120;

 public class Father {

     private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} // public Father()
// {
// System.out.println("父类的构造方法");
// }
public Father (String name)
{
System.out.println("父类的有参的构造方法");
this.name = name;
}
//工作
public void work()
{
System.out.println("我劳动我光荣");
}
}

创建子类:

 package org.hanqi.pn0120;

 public class Son extends Father {
//Object a;所有类的父类 public Son()
{
//super 表示父类
super("儿子");
System.out.println("子类的构造方法");
}
public void sing()
{
System.out.println("我喜欢唱歌");
}
//覆盖(重写)
public void work()
{
//调用父类的方法
//super.work();
//System.out.println("我不喜欢上班,我要去参加海选");
System.out.println("我边上班边练歌");
} public static Object getData(int i)
{
Object rtn = null;
//获取数据
if (i==1)
{
//1 father
Father f = new Father("向上转型的父类");
//向上转型
rtn = f;
}
else
{
//2 son
Son s = new Son();
rtn = s;
}
return rtn;
}
}

创建测试类:

 package org.hanqi.pn0120;

 public class TestJiCheng {

     public static void main(String[] args) {
//
Father f = new Father("父亲");
f.setName("父亲");
f.setAge(50);
System.out.println("名字是:"+f.getName()+" 年龄是:"+f.getAge());
f.work();
Son s = new Son();
s.setName("儿子");
s.setAge(20);
System.out.println("名字是:"+s.getName()+" 年龄是:"+s.getAge());
s.work();
s.sing(); System.out.println(); //转型
//向上转型 子类转成父类
Father f1 = new Son();
System.out.println("名字是:"+s.getName());
f1.work();//如果被子类重写,调用子类的方法
//f1.sing 若父类想调用子类特有的成员,必须再进行向下转型 System.out.println("向下转型");
//向下转型 父类转成子类
//Son s1 = (Son) new Father("父亲");
Son s1 = (Son) f1;
s1.work();
s1.sing();
System.out.println(); Father f2 = (Father)Son.getData(1);
f2.work();
}
}

运行结果为:

总结:

 package org.hanqi.pn0120;

 public class TestZhuanXing {

     public static void main(String[] args) {

         // 向上转型
Object obj = new Son();
//判断某个对象是否是某个类的实例,返回boolean
if(obj instanceof Son)
{
System.out.println("obj是Son的实例");
} Father f = new Father(""); if(f instanceof Son)
{
System.out.println("f是Son的实例");
}
else
{
System.out.println("f不是Son的实例");
}
if(obj instanceof Father)
{
System.out.println("boj是Father的实例");
}
else
{
System.out.println("boj不是Father的实例");
} //向下转型
Son s = (Son)obj;
s.work();
s.sing();
Father f1 = (Father)obj;
f1.work();
}
}

运行结果为:

附思维导图:

课堂所讲整理:super和转型(修改版)的更多相关文章

  1. 课堂所讲整理:输入输出流(I/O)2(修改版)

    package org.hanqi.ex; import java.io.*; public class TestFile2 { public static void main(String[] ar ...

  2. 课堂所讲整理:HTML--8Window.document对象

    1.Window.document对象 一.找到元素: docunment.getElementById("id"):根据id找,最多找一个:    var a =docunmen ...

  3. 课堂所讲整理:HTML--7JavaScript的DOM操作

    1.DOM的基本概念 DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 2.Window对象操作 一.属性和方法: 属性(值或者子对象): op ...

  4. 课堂所讲整理:HTML--6运算符、类型转换

    1.类型转换: 分为自动转换和强制转换,一般用强制转换. 其他类型转换为整数:parseint(): 其他类型转换为小数:parsefloat(): 判断是否是一个合法的数字类型:isNaN(): 是 ...

  5. 课堂所讲整理:HTML--5JavaScript简介

    一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司 ...

  6. 课堂所讲整理:输入输出流(I/O)

    package org.hanqi.ex; import java.io.*; public class TestFile { public static void main(String[] arg ...

  7. 课堂所讲整理:包装&工具类

    package org.hanqi.array; import java.util.Random; public class BaoZhuang { public static void main(S ...

  8. 课堂所讲整理:Set和Map

    Set相关知识: package org.hanqi.array; import java.util.*; public class Test2 { public static void main(S ...

  9. Android 仿美团网,大众点评购买框悬浮效果之修改版

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...

随机推荐

  1. NIO基础

    通道和缓冲区 概述 通道 和 缓冲区 是 NIO 中的核心对象,几乎在每一个 I/O 操作中都要使用它们. 通道是对原 I/O 包中的流的模拟.到任何目的地(或来自任何地方)的所有数据都必须通过一个 ...

  2. C# SVN检出的代码,F12显示从元数据

    解决办法: 删除项目中的引用(同时也要删除bin文件夹中的dll文件,否则不能重新添加),并重新添加本地引用即可. 原因: 项目中的dll文件不是本机编译出来的,所以找不到元数据.如果当前关联的项目里 ...

  3. centos ssh 无密码登录

    在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的.telnet,因为其不安全性,在linux系统中被搁置使用 ...

  4. winform错误提示 :窗口类名无效(Window class name is not valid)

    winfrom 程序在 xp 操作系统上报错提示 窗口类名无效(Window class name is not valid) 解决方法 注释 Program类 里 这句 Application.En ...

  5. matlab的正则表达式讲解[转]

    引言.啥是正则表达式?正则表达式是干啥的?我理解就和我们在word或者其他编辑软件里点的查找.替换的作用是差不多的,不过功能要强大的多,当然使用起来也稍微复杂一些.书上的定义差不多是这样的:正则表达式 ...

  6. git vs svn

    http://www.tuicool.com/articles/e2MnAb Git与SVN的不同之处 svn为集中化的版本控制,svn获取最新的版本或者提交更新,历史记录等信息每次都要连接中央版本库 ...

  7. osmocom-bb中用osmocon刷入固件命令那些参数你都弄懂了吗?

    转载留做备份,原文地址:http://92ez.com/?action=show&id=23341 首先找到osmocon.c这个源文件,具体目录在这里 osmocom-bb/src/host ...

  8. scp 在Ubuntu下传文件 基于ssh

    scp是linux下的远程拷贝 命令: (1)将本地文件拷贝到远程:scp  文件名 用户名@计算机IP或者计算机名称:远程路径  (2)从远程将文件拷回本地:scp  用户名@计算机IP或者计算机名 ...

  9. PHP_Const

    PHP_Const 常量 规则: 1 总是大写 2 A-Z 及 从127-255的ASCII字符 3 全局范围 4 用define函数定义 5 只能包含标量数据 如Boolean integer fl ...

  10. 分享25个CSS前端网页设计常用技巧

    1.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值.2.同一个的class选择符可以在一个文档中重复出现,而id选择符却只能出现一次;对一个标签同时使用class ...