类 的继承2
来源:互联网 发布:结构动力特性试验数据 编辑:程序博客网 时间:2024/04/28 15:59
class Animal{
int x,y;
String name;
Animal(){}
Animal(String name, int x, int y){
this.name = name;
this.x = x;
this.y = y;
}
void move(){
System.out.println("动物都会移动");
}
void eat(Animal animal){}
}
class Crab extends Animal{
int legs = 8;
Crab(){}
Crab(String name,int x, int y, int legs){
super(name,x,y);
this.legs = legs;
}
//方法重写
void eat(Animal animal){
if(animal instanceof Worm){
System.out.println(this.name + "吃掉了" + animal.name);
}else if(animal instanceof Crab){
System.out.println("我们螃蟹不自相残杀");
Crab oneCrab = (Crab)animal;//强制类型转换,又叫“向下转型”
System.out.println("因为它有" + oneCrab.legs + "条腿");
}else{
System.out.println("食物来源不明,不敢吃");
}
}
void move(){
System.out.println("螃蟹横着走");
}
}
class Worm extends Animal{
Worm(){}
Worm(String name, int x, int y){
super(name,x,y);
}
void move(){
System.out.println("虫子扭着走");
}
}
class LongXia{
void eat(Animal animal){
}
}
public class Demo1{
public static void main(String[] args){
/*
Crab crab = new Crab();
crab.move();
Worm worm = new Worm();
worm.move();
*/
Animal animal = new Crab();//向上转型。自动类型转换
animal.move();//
Animal animal2 = new Worm();
animal2.move();
//多态
/*
Animal animal = new Crab();
animal.move();
animal = new Worm();
animal.move();
*/
/*Animal animal01 = new Crab("螃蟹1号",10,10,8);
Animal animal02 = new Crab("螃蟹2号",10,10,8);
animal01.eat(animal02);
Worm worm01 = new Worm("小虫子1号",20,20);
animal01.eat(worm01);//自动对象类型转换,实参worm01从Worm类型自动转为形参的Animal类型
*/
}
}
int x,y;
String name;
Animal(){}
Animal(String name, int x, int y){
this.name = name;
this.x = x;
this.y = y;
}
void move(){
System.out.println("动物都会移动");
}
void eat(Animal animal){}
}
class Crab extends Animal{
int legs = 8;
Crab(){}
Crab(String name,int x, int y, int legs){
super(name,x,y);
this.legs = legs;
}
//方法重写
void eat(Animal animal){
if(animal instanceof Worm){
System.out.println(this.name + "吃掉了" + animal.name);
}else if(animal instanceof Crab){
System.out.println("我们螃蟹不自相残杀");
Crab oneCrab = (Crab)animal;//强制类型转换,又叫“向下转型”
System.out.println("因为它有" + oneCrab.legs + "条腿");
}else{
System.out.println("食物来源不明,不敢吃");
}
}
void move(){
System.out.println("螃蟹横着走");
}
}
class Worm extends Animal{
Worm(){}
Worm(String name, int x, int y){
super(name,x,y);
}
void move(){
System.out.println("虫子扭着走");
}
}
class LongXia{
void eat(Animal animal){
}
}
public class Demo1{
public static void main(String[] args){
/*
Crab crab = new Crab();
crab.move();
Worm worm = new Worm();
worm.move();
*/
Animal animal = new Crab();//向上转型。自动类型转换
animal.move();//
Animal animal2 = new Worm();
animal2.move();
//多态
/*
Animal animal = new Crab();
animal.move();
animal = new Worm();
animal.move();
*/
/*Animal animal01 = new Crab("螃蟹1号",10,10,8);
Animal animal02 = new Crab("螃蟹2号",10,10,8);
animal01.eat(animal02);
Worm worm01 = new Worm("小虫子1号",20,20);
animal01.eat(worm01);//自动对象类型转换,实参worm01从Worm类型自动转为形参的Animal类型
*/
}
}
0 0
- 类 的继承2
- c++类的继承:私有继承,公有继承,保护继承
- javascript 类的继承2
- 类的继承 保护继承和私有继承
- C#类的继承-什么是继承
- 继承QVector----模板类的继承
- 类的一般继承与虚继承
- java基础知识7-类的继承2
- Java实验2 类的继承性
- 继承:单继承、派生类成员的访问属性、多继承、菱形继承、虚继承,菱形虚拟继承
- java 类的继承
- 类的继承
- C#类的继承
- JavaScript类的继承
- C++ 类的继承
- 类的继承
- Java类的继承
- 类的继承
- pu ke didi
- 设计模式(12) 代理模式(PROXY)
- double badminton match
- VC和GCC静态变量析构顺序不同
- 关于fstream修改文件内容的操作
- 类 的继承2
- 解bug的心得
- 【面向对象设计模式】 接口型模式 (一)
- PL/SQL Developer如何连接64位的Oracle
- 类和对象入门
- 大数据处理(转化成字符串)
- 《我的助理辞职了》,最近非常火的一篇文章,受益颇多,共勉!
- 如何吸引技术合伙人
- 2014,新的一年,新的开始