多态没什么可注意的,值得注意的关键字是instanceof,针对解释"它可以判断一个对象是否为某个类的实例或者子类"
代码如下:
package D10;
public class AnimalTest {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Animal a1= new Cat(); //新建对象使用Animal类的a1引用它
Animal a2= new Dog();
animalShout(a1);
// animalShout(a2);
}
public static void animalShout(Animal sh) { //多态利用参数确认实现方法
sh.shout();
Cat cat=(Cat) sh;
cat.sleep();
}
}
// TODO 自动生成的方法存根
Animal a1= new Cat(); //新建对象使用Animal类的a1引用它
Animal a2= new Dog();
animalShout(a1);
// animalShout(a2);
}
public static void animalShout(Animal sh) { //多态利用参数确认实现方法
sh.shout();
Cat cat=(Cat) sh;
cat.sleep();
}
}
/*-------------------------------------------------------------------------------------------------------------------------------------分割*/
package D10;
class Cat implements Animal {
public void shout() { //去掉public会怎样?
System.out.println("喵喵~");
}
public void sleep() { //去掉public会怎样?
System.out.println("睡觉~");
}
}
public void shout() { //去掉public会怎样?
System.out.println("喵喵~");
}
public void sleep() { //去掉public会怎样?
System.out.println("睡觉~");
}
}
/*-------------------------------------------------------------------------------------------------------------------------------------分割*/
package D10;
class Dog implements Animal {
public void shout() {
System.out.println("汪汪~");
}
}
public void shout() {
System.out.println("汪汪~");
}
}
/*-------------------------------------------------------------------------------------------------------------------------------------分割*/
package D10;
interface Animal {
void shout();
}
void shout();
}
实现:
package D10;
public class AnimalTest {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Animal a1= new Cat(); //新建对象使用Animal类的a1引用它
Animal a2= new Dog();
animalShout(a1);
animalShout(a2);
}
public static void animalShout(Animal sh) { //多态利用参数确认实现方法
if (sh instanceof Cat) {
sh.shout();
Cat cat=(Cat) sh;
cat.sleep();
}else {
sh.shout();
}
}
}
// TODO 自动生成的方法存根
Animal a1= new Cat(); //新建对象使用Animal类的a1引用它
Animal a2= new Dog();
animalShout(a1);
animalShout(a2);
}
public static void animalShout(Animal sh) { //多态利用参数确认实现方法
if (sh instanceof Cat) {
sh.shout();
Cat cat=(Cat) sh;
cat.sleep();
}else {
sh.shout();
}
}
}