今天学习了下多态,做个简单的笔记
1,多态里有继承
2,子类中的多钟形态重载
3,主程序中定义了父类,实现子类的功能
测试有几种表现形态:
1,public static void function(Animal c){
c.sing;}//这样定义显示子类的实现
2,public static void function(Animal c){
Animal c1=new Animal();
c1.sing;}//此处只能显示父类的实现
3,public static void function(Animal c){
Cat6 c1=(Cat6)c;
c1.catchMouse();//此处好像不能写多个,如定义cat和dog,只能有一个
}
4,public static void function(Animal c){
Cat6 c1=(Cat6)c;
c1.catchMouse();//此处好像不能写多个,如定义cat和dog,只能有一个
}
5,public static void function(Cat6 c){
Cat6 c1=(Cat6)c;
c1.catchMouse();//此处好像不能写多个,如定义cat和dog,只能有一个
}
class Animal{
void sing(){
System.out.println("唱歌");
}
}
class Dog6 extends Animal{
void sing(){
System.out.println("汪汪的唱歌");
}
}
class Cat6 extends Animal{
void sing(){
System.out.println("喵喵的唱歌");
}
void catchMouse(){
System.out.println("捕鼠");
}
}
public class A651{
public static void main(String[] args){
Cat6 c1=new Cat6();
function(c1);
Dog6 c2=new Dog6();
function(c2);
}
public static void function(Animal c){//Animal c=new Cat();
/*Cat6 c1=(Cat6)c;
c1.catchMouse();
Dog6 c2=(Dog6)c;
c2.sing();*///测试好像只能定义cat或者dog,合起来定义程序混乱
/*Animal c1=new Animal();
c1.sing//若是定义了Animal,则显示只会显示Animal中的唱歌属性,不会显示子类
*/ c.sing();
}