Java——多态
2016-01-04 16:37
459 查看
class Pet{ //宠物类
void cry(){
System.out.println("叫");
}
void eat(){
System.out.println("吃");
}
void say(){
System.out.println("父类特有的方法");
}
}
class Dog extends Pet{ //狗类
void cry(){
System.out.println("汪汪!!");
}
void eat(){
System.out.println("狗吃了狗粮");
}
void guardEntrance(){
System.out.println("狗在看门");
}
}
class Cat extends Pet{ //猫类
void cry(){
System.out.println("喵喵~~");
}
void eat(){
System.out.println("猫吃了猫粮");
}
void huntMice(){
System.out.println("猫在抓老鼠");
}
}
public class Test {
public static void main(String[] args) {
Pet pet1=new Dog(); //定义一个狗对象,当成Pet看待,向上转型,默认
Pet pet2=new Cat(); //父类引用指向子类的对象
pet1.cry();
pet2.eat();
// pet1.guardEntrance(); //错误,父类无法引用子类特有的部分
Pet pet3=new Cat(); //向下转型,强制(先向上转型再向下)
Cat cat=(Cat)pet3;
cat.cry();
cat.eat();
cat.huntMice();
cat.say();
}
}
void cry(){
System.out.println("叫");
}
void eat(){
System.out.println("吃");
}
void say(){
System.out.println("父类特有的方法");
}
}
class Dog extends Pet{ //狗类
void cry(){
System.out.println("汪汪!!");
}
void eat(){
System.out.println("狗吃了狗粮");
}
void guardEntrance(){
System.out.println("狗在看门");
}
}
class Cat extends Pet{ //猫类
void cry(){
System.out.println("喵喵~~");
}
void eat(){
System.out.println("猫吃了猫粮");
}
void huntMice(){
System.out.println("猫在抓老鼠");
}
}
public class Test {
public static void main(String[] args) {
Pet pet1=new Dog(); //定义一个狗对象,当成Pet看待,向上转型,默认
Pet pet2=new Cat(); //父类引用指向子类的对象
pet1.cry();
pet2.eat();
// pet1.guardEntrance(); //错误,父类无法引用子类特有的部分
Pet pet3=new Cat(); //向下转型,强制(先向上转型再向下)
Cat cat=(Cat)pet3;
cat.cry();
cat.eat();
cat.huntMice();
cat.say();
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树