创建父类:

 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. 结构化视角看django

    分析一个软件的整体框架,我认为应该从静态和动态两方面入手.静态方面,看它有哪些用例,即有哪些功能模块:动态方面,看主流程如何连接上这些模块 静态方面:分View.Model.Template.Sess ...

  2. CSU 1111 D(Contest #3)

              有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列,便出了90元.请 ...

  3. Spring学习笔记之Bean的实例化

    一.bean的实例化方法有3种, 1.构造器实例化 2.静态工厂方法实例化 3.实例工厂方法实例化 二.用构造器来实例化 <bean id="ShunDao" class=& ...

  4. vi编辑器选项

    Vi编辑器有一些选项设置可以帮助人们更好的使用. 在vi中选项分为两种: 1.  开关选项,如果要打开这类选项就使用ex命令——:set 选项:如果要关闭这类选项就是用ex命令——:set  no选项 ...

  5. 端口占用问题——netstat命令

    1.查看所有的端口占用情况 C:\>netstat -ano 协议 本地地址            外部地址   状态           PID(进程号) TCP 127.0.0.1:1434 ...

  6. 【django入门教程】Django的安装和入门

    很多初学django的朋友,都不知道如何安装django开发以及django的入门,今天小编就给大家讲讲django入门教程. 注明:python版本为3.3.1.Django版本为1.5.1,操作系 ...

  7. operation not possible due to RF-kill

    使用mdk3时出现这个问题operation not possible due to RF-kill 就是输入第一条命令 后出现 operation not possible due to RF-ki ...

  8. compare:(字符串的大小比较)

    1.字符串的比较是按照ascall码进行比较的 比如A比a的值小, if([string1 compare:string2] == (以下描述)) 如果比较的结果是NSOrderedDescendin ...

  9. 对NSNumber的理解

    1.nsnumber最重要的作用是可以封装任何的值对象,就是说nsnumber对象的类型可以是任何的类型. 如nsnumber *number = @"12" nsnumber * ...

  10. 解决MindManager缺少mfc100u.dll无法启动的难题-转载

    很多应用软件的运行环境离不开组件,MindManager也不例外.很多用户在成功安装MindManager之后,却显示无法找到组件mfc100u.dll,mfc100u.dll是MindManager ...