学习任务
面向对象特征之三:多态性
java多态性:它是面向对象中最重要的概念,
在java中有两种体现:
1.方法的重载(overload)和重写(overwrite)
2.对象的多态性--可以直接应用在抽象类和接口上。
Java引用变量有两个类型:
编译时类型和运行时类型
编译时类型由声明该变量时使用的类型决定,运行时类
型由实际赋给该变量的对象决定。
若编译时类型和运行时类型不一致,就出现多态(Polymorphism)
多态一个例子如下:
//先创建包在创建一个父类
class rson {
int age;
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat() {
System.out.println("人吃饭");
}
public void jump() {
System.out.println("跳");
}
}
继承:
class Dog extends rson {
public void eat() {
System.out.println("狗吃食");
}
public void jump() {
System.out.println("狗跳");
}
public void Wang() {
System.out.println("汪汪叫");
}
}
继续继承:
class Cat extends rson {
public void eat() {
System.out.println("猫吃食");
}
public void jump() {
System.out.println("猫跳");
}
public void miao() {
System.out.println("喵喵喵");
}
}
最后:
public class person {
public static void name(String[] args) {
person p = new person();
p.func(new rson());
p.func(new Dog());
p.func(new Cat());
}
public void func(rson g) {
g.eat();
g.jump();
}
public void func(Dog m) {
m.eat();
m.jump();
}
}
今天有一点没有懂正在学习!!!