一阶段-EighthWork-1-字符流+缓冲流
来源:互联网 发布:怎么通过网络赚钱 编辑:程序博客网 时间:2024/06/05 20:36
/*
定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,
里面写System.out.println("猫吃了鱼")这样的打印语句,另外狗有自己的方法看门guardEntrance(),猫自己独有的方法捉老鼠huntMice()
定义一个Test类,在main中定义两个Pet变量,pet1,pet2,采用引用转型实例化Dog,Cat,分别调用Pet的cry(),eat();
* (2)将Pet引强制转换为具体的Dog,Cat,在调Dog的guardEntrance(),Cat的huntMice()(提示:先用instanceof进行类型判断)
* (3)(思考)修改Test类,添加喂养宠物feedPet(Pet pet)的方法,在feedPet中调cry(),eat()方法,实例化Test类,再实例化狗 Dog dog = new Dog(),
猫 Pet cat = new Cat(), Test分别调feedPet()方法分别传参数cat,dog,思考这两种方式的异同,深入理解引入转型和多态
*/
package EighthWork;
/**
*
* @author Administrator
*/
public abstract class PetTest
{
//这里体现的是多态的实现机制,通过传入参数的对象不同来实现多态
public void feedPet(Pet pet)
{
System.out.print("\n");
pet.cry();
pet.eat();
}
public static void main(String[] args)
{
//采用转型实例化Dog和Cat
//属性和方法的调用是不同的,属性跟着父类引用的类型一致,方法与实例的引用一致
//也就是属性是在编译时就由父类决定 ,方法在由运行时决定
Pet pet1 = new Dog();
pet1.cry();
pet1.eat();
pet1 = new Cat();//实现动态多态的要求:继承、实例名字相同、
pet1.cry();
pet1.eat();
//将Pet强制转换为具体的Dog和Cat
// Pet pet1 = new Dog();
// Pet pet2 = new Cat();
// if(pet1 instanceof Dog)
// {
// Dog dog = (Dog)pet1;
// dog.guardEntrance();
// }
// if(pet2 instanceof Cat)
// {
// Cat cat = (Cat)pet2;
// cat.huntMice();
// }
//通过传递对象参数的引用实现多态
// PetTest petTest = new PetTest();
// Dog dog = new Dog();
// Pet cat = new Cat();
// petTest.feedPet(dog);
// petTest.feedPet(cat);
}
}
============================================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package EighthWork;
/**
*
* @author Administrator
*/
public abstract class Pet
{
public void cry() //抽象类中也允许有非抽象方法
{
System.out.print("宠物在叫");
}
public void eat()
{
System.out.print("宠物在吃");
}
//抽象类都是应用于继承,子类应该重写抽象类中所有的抽象方法
public abstract void PetEat();
}
========================================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package EighthWork;
/**
*
* @author Administrator
*/
public class Dog extends Pet
{
public Dog()
{
System.out.println("养了一只狗");
}
public void cry()
{
System.out.println("狗的叫声:汪汪...");
}
public void eat()
{
System.out.println("狗啃了一根骨头");
}
public void guardEntrance()
{
System.out.println("宠物狗在看门");
}
public void PetEat()
{
}
}
=======================================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package EighthWork;
/**
*
* @author Administrator
*/
public class Cat extends Pet
{
public Cat()
{
System.out.println("养了一只猫");
}
public void cry()
{
System.out.println("猫在叫:喵喵...");
}
public void eat()
{
System.out.println("猫吃了一条鱼");
}
public void huntMice()
{
System.out.println("宠物猫抓了一只老鼠");
}
public void PetEat()
{ }
}
定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,
里面写System.out.println("猫吃了鱼")这样的打印语句,另外狗有自己的方法看门guardEntrance(),猫自己独有的方法捉老鼠huntMice()
定义一个Test类,在main中定义两个Pet变量,pet1,pet2,采用引用转型实例化Dog,Cat,分别调用Pet的cry(),eat();
* (2)将Pet引强制转换为具体的Dog,Cat,在调Dog的guardEntrance(),Cat的huntMice()(提示:先用instanceof进行类型判断)
* (3)(思考)修改Test类,添加喂养宠物feedPet(Pet pet)的方法,在feedPet中调cry(),eat()方法,实例化Test类,再实例化狗 Dog dog = new Dog(),
猫 Pet cat = new Cat(), Test分别调feedPet()方法分别传参数cat,dog,思考这两种方式的异同,深入理解引入转型和多态
*/
package EighthWork;
/**
*
* @author Administrator
*/
public abstract class PetTest
{
//这里体现的是多态的实现机制,通过传入参数的对象不同来实现多态
public void feedPet(Pet pet)
{
System.out.print("\n");
pet.cry();
pet.eat();
}
public static void main(String[] args)
{
//采用转型实例化Dog和Cat
//属性和方法的调用是不同的,属性跟着父类引用的类型一致,方法与实例的引用一致
//也就是属性是在编译时就由父类决定 ,方法在由运行时决定
Pet pet1 = new Dog();
pet1.cry();
pet1.eat();
pet1 = new Cat();//实现动态多态的要求:继承、实例名字相同、
pet1.cry();
pet1.eat();
//将Pet强制转换为具体的Dog和Cat
// Pet pet1 = new Dog();
// Pet pet2 = new Cat();
// if(pet1 instanceof Dog)
// {
// Dog dog = (Dog)pet1;
// dog.guardEntrance();
// }
// if(pet2 instanceof Cat)
// {
// Cat cat = (Cat)pet2;
// cat.huntMice();
// }
//通过传递对象参数的引用实现多态
// PetTest petTest = new PetTest();
// Dog dog = new Dog();
// Pet cat = new Cat();
// petTest.feedPet(dog);
// petTest.feedPet(cat);
}
}
============================================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package EighthWork;
/**
*
* @author Administrator
*/
public abstract class Pet
{
public void cry() //抽象类中也允许有非抽象方法
{
System.out.print("宠物在叫");
}
public void eat()
{
System.out.print("宠物在吃");
}
//抽象类都是应用于继承,子类应该重写抽象类中所有的抽象方法
public abstract void PetEat();
}
========================================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package EighthWork;
/**
*
* @author Administrator
*/
public class Dog extends Pet
{
public Dog()
{
System.out.println("养了一只狗");
}
public void cry()
{
System.out.println("狗的叫声:汪汪...");
}
public void eat()
{
System.out.println("狗啃了一根骨头");
}
public void guardEntrance()
{
System.out.println("宠物狗在看门");
}
public void PetEat()
{
}
}
=======================================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package EighthWork;
/**
*
* @author Administrator
*/
public class Cat extends Pet
{
public Cat()
{
System.out.println("养了一只猫");
}
public void cry()
{
System.out.println("猫在叫:喵喵...");
}
public void eat()
{
System.out.println("猫吃了一条鱼");
}
public void huntMice()
{
System.out.println("宠物猫抓了一只老鼠");
}
public void PetEat()
{ }
}
阅读全文
0 0
- 一阶段-EighthWork-1-字符流+缓冲流
- 一阶段-EighteenthWork-1-字符流+缓冲流
- 缓冲字符流
- 缓冲字符流
- 缓冲字符流
- 缓冲字符流
- 缓冲字符流
- 缓冲字符流
- 缓冲字符流
- 缓冲字符流
- 缓冲字符流
- 字符缓冲流
- 缓冲输入字符流
- 缓冲字符流
- java 缓冲字符流
- 字节流、字符流、字节缓冲流、字符缓冲流
- 字符流,字节流,缓冲
- 字符流,字节流,缓冲
- linux中S3C2440的物理地址映射到虚拟地址详解
- Python——XML解析
- The Solution to Leetcode 563 Binary Tree Tilt
- Immutable Strings 字符串对象不可变
- 一阶段-EighteenthWork-2-数据库操作
- 一阶段-EighthWork-1-字符流+缓冲流
- 一阶段-FifteenthWork-2-使用ArrayList
- 3D游戏社区内双人交互实现
- 一阶段-FifteenthWork-3-HashMap对象
- 一阶段-SeventeenWork-3-用户和密码信息保存到test.txt文件中
- Android圆形按钮,点击可以变色
- 1030. 完美数列(25)
- VS+Opencv 新库导入过程(以AVS视频解码库导入为例)
- RIP理论知识梳理