黑马程序员技术交流社区
标题:
至今写的最长的一个程序
[打印本页]
作者:
磊弟哥哥
时间:
2014-9-13 15:46
标题:
至今写的最长的一个程序
/*
多态及其拓展性
多态:可以理解为事物存在的多种形态
动物:猫 狗
猫x=new 猫();
狗x=new 狗();
1.多态的体现
父类的引用指向自己子类的对象
父类引用接收自己子类的对象
2.多态的前提
必须是类与类之间有关系,要么继承要么实现
而且要存在覆盖
3.多态的好处
提高了程序的拓展性
4.多态的弊端
提高了拓展性但只能使用父类的引用访问父类成员
*/
class Demo
{
public static void main(String []args)
{
//Animal a=new Cat();//类型提升,向上转型
//a.eat();
//Cat c=(Cat)a;//向下转型,将父类引用转化成子类类型
//c.catchMouse();
//Animal a=new Animal();
//Cat c=(Cat)a;
//这样的操作不允许,将父类对象转换成了子类类型
//我们能转换的是父类引用指向自己子类对象时,该引用可以被提升,也可被强制转型
//多态自始至终都是子类对象在做变化
function(new Dog());
function(new Cat());
}
public static void function(Animal a)
{
a.eat();
if(a instanceof Cat)
{
Cat c=(Cat)a;//先将动物向下转型为猫
c.catchMouse();//猫的实例调用猫的特有功能
}
else if(a instanceof Dog)
{
Dog d=(Dog)a;
d.kanjia();
}
}
}
abstract class Animal
{
public abstract void eat();//体系的基本功能,向上抽取出来的,里面定义的一定是体系的共有功能
}
class Cat extends Animal
{
public void eat()
{
System.out.println("吃鱼");
}
public void catchMouse()
{
System.out.println("抓老鼠");
}
}
class Dog extends Animal
{
public void eat()
{
System.out.println("吃骨头");
}
public void kanjia()
{
System.out.println("看家");
}
}
class Pig extends Animal
{
public void eat()
{
System.out.println("吃饲料");
}
public void gongdi()
{
System.out.println("拱地");
}
}
作者:
执梦而行
时间:
2014-9-13 17:48
不错,支持下
作者:
苏乞儿
时间:
2014-9-14 00:47
楼主加油!!!!
作者:
happyto1021
时间:
2014-9-14 00:52
加油楼主
作者:
pvting
时间:
2014-9-14 00:53
一步一步来,以后越老越长
作者:
碎流
时间:
2014-9-14 03:53
兄弟加油哦..... 看好你的拱地方法哦~!~:lol
作者:
谢建平
时间:
2014-9-14 04:28
看好你哦
作者:
15579171087
时间:
2014-9-14 09:21
加油啊楼主
作者:
darkads
时间:
2014-9-14 09:49
一起加油
作者:
子阳zy
时间:
2014-9-14 10:07
骚年,爆发吧
作者:
黑马的小菜鸟
时间:
2014-9-14 10:37
加油,一起努力!!
作者:
凌小歌
时间:
2014-9-14 13:42
这是毕老师的多态
作者:
hushiliang
时间:
2014-9-14 13:50
楼主 加油 啊
作者:
ItJack
时间:
2014-9-14 14:42
不错,加油。
作者:
言钟钟
时间:
2014-9-14 17:19
不错!支持!
作者:
刘宣超
时间:
2014-9-14 17:30
加油努力吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2