创建父类:

 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. SharePoint 2013 开发——SharePoint APP介绍

     博客地址:http://blog.csdn.net/FoxDave 新的APP模型让我们能够创建看起来像是SharePoint的一部分的应用程序,但是它完全运行在独立于SharePoint服务器 ...

  2. javascript中创建对象的几种方式

    1. 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的值. var person = new Object(); person.name=&q ...

  3. mybatis 参数问题

    load方法,往sql语句中传一个参数的那种,似乎parameterType并不是那么重要,不写其实都可以,而且sql语句中的比如username=#{A} 这里面的A可以随便写,只要传过来的是个St ...

  4. MongoDB的C#驱动程序教程(译) 转

    1.概述 本教程是10gen支持C#驱动程序MongoDB的介绍.假定您熟悉使用MongoDB,因此主要集中在如何使用C#访问MongoDB的. 它分为两个部分:C# 驱动程序 ,BSON图书馆.C# ...

  5. HDU 3333 - Turing Tree (树状数组+离线处理+哈希+贪心)

    题意:给一个数组,每次查询输出区间内不重复数字的和. 这是3xian教主的题. 用前缀和的思想可以轻易求得区间的和,但是对于重复数字这点很难处理.在线很难下手,考虑离线处理. 将所有查询区间从右端点由 ...

  6. 查看某个html标签有哪些属性和事件

    <html><head><script> //查看input标签有哪些属性和事件 function a() { var str = new String(" ...

  7. Actipro Ribbon For WPF 界面控件免费下载地址

    Actipro Ribbon可以添加ribbon用户界面到你的程序中,功能包含:ribbon大小调整.程序菜单.QAT.嵌入的多种控件.多种布局选项.按键提示.屏幕提示.WPF命令模式用法.多种样式. ...

  8. 将salt取到的数据处理

    #!/usr/bin/env python #coding:utf-8 import json with open('minfo') as f,open('minfoMiddle','w') as f ...

  9. pscp使用详解 Windows与Linux文件互传工具

    pscp使用详解 Windows与Linux文件互传工具 pscp使用方法详解:pscp是putty安装包所带的远程文件传输工具,是一款十分常见windows与linux系统之间文件互传的工具,使用方 ...

  10. 简单的JS运动封装实例---侧栏分享到

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...