package polymorphic;
public static void main(String[] args){
/*
多态-扩展性
*/
f( new Description());//这是猫叫方法
//f( new Dog ());//这是狗叫的方法
}
}
}
}
abstract class Animal{//动物类
public abstract void call ();//动物叫的方法 抽象的!
}
class Description extends Animal{ //描 动物类
public void call (){
System.out.println("猫叫 苗 苗");
}
public void eat(){
System.out.println("猫吃鱼");
}
}
class Dog extends Animal{//狗 动物类
public void call (){
System.out.println("狗叫 旺旺");
}
public void eat(){
System.out.println("狗吃 骨头");
}
public void Housekeeping(){
System.out.println("狗 看家");
}
}
/*
// 总结:对于多态 是同一个行为有多个指向, 比如动物分为: 狗 猫 ... 如果动物向上抽取、
哺乳动物啊! 爬行动物啊!....
他们是不是都指向小说这个类
*/
public class Polymorphic {
/*
多态-扩展性
多态:比如动物 狗 猫 他们的叫的方法 不同所以是抽象的!
1.定义 Animal动物类为父类
2.创建 Description类 然后继承Anima类 重写方法
*/
f( new Description());//这是猫叫方法
//f( new Dog ());//这是狗叫的方法
}
public static void f(Animal a){
Animal a = new call(); //吃的方法
a.call();//调用吃的方法
if(a instanceof Dog){
扫描二维码关注公众号,回复:
2832336 查看本文章
Dog c=(Dog)a ;//类型转换
c.Housekeeping();
}else if(a instanceof Description){
Description c=(Description)a ;//类型转换
}
}
}
abstract class Animal{//动物类
public abstract void call ();//动物叫的方法 抽象的!
}
class Description extends Animal{ //描 动物类
public void call (){
System.out.println("猫叫 苗 苗");
}
public void eat(){
System.out.println("猫吃鱼");
}
}
class Dog extends Animal{//狗 动物类
public void call (){
System.out.println("狗叫 旺旺");
}
public void eat(){
System.out.println("狗吃 骨头");
}
public void Housekeeping(){
System.out.println("狗 看家");
}
}
/*
// 总结:对于多态 是同一个行为有多个指向, 比如动物分为: 狗 猫 ... 如果动物向上抽取、
哺乳动物啊! 爬行动物啊!....
还有一个例子跟大家分享:
比如 :小说类 是不是有很多不同的小说啊!可以定义为抽象的!
例如:历史 ,灵异 ,言情.....他们是不是都指向小说这个类
*/