62,614
社区成员
发帖
与我相关
我的任务
分享
public class Study_3 {
public static void main(String[] args){
B zz=new B();
zz.bb();
}
}
class A{
public void aa(){
}
public void bb(){
this.aa();
}
}
class B extends A{
public void aa(){//我在这里重写了aa,有什么意义呀。
System.out.println("测试");
}
}
//定义一个接口Animal 动物
interface Animal {
void shout();
/**
* 接口里面的方法都是抽象方法,可以不写方法体, 也就是说Animal动物的叫声我们先不定义
*,等有具体的动物比如狗的时候 我们在实现它的叫声,看下面
*/
}
// 定义狗类继承Animal接口
class Dog implements Animal {
@Override
public void shout() {
// TODO Auto-generated method stub
// 这里实现具体的叫声,这就是重写方法的意义
System.out.println("狗的叫声 旺旺");
}
}
// 定义猫类继承Animal接口,这里同理
class Cat implements Animal {
@Override
public void shout() {
// TODO Auto-generated method stub
System.out.println("猫的叫声 猫猫");
}
}
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
/**
* 现在一共有3个shout 方法,你可以用这种方法来实现叫声 Dog an1=new Dog(); an1.shout(); Cat
* an2=new Cat(); an2.shout();
*
*/
// 调用animalShout方法,传入对象,第二种就是多态
animalShout(new Dog());
animalShout(new Cat());
}
// 定义一个静态的AnimalShout方法,接受一个Animal类型的参数
public static void animalShout(Animal an) {
an.shout();
}
}