public class Person {
String name;
}
class Student extends Person {
int age;
public static void main(String[] args) {
/*没有多态*/
Person p = new Person();
/*多态:子类对象被声明为父类类型 */
Person zhangsan = new Student();
Person lisi = new Student();
/*类比*/
double grade = 98;
}
}
2.实现关系(接口):
interface IPerson {
public void speak();
}
class Worker implements IPerson{
@Override
public void speak() {
System.out.println("hello");
}
public static void main(String[] args) {
IPerson wangwuIPerson = new Worker();
}
三、为什么使用多态?
1.增强方法的适用性
2.有利于方法的重用
3.软件的扩展。
四、发生多态最多的是:
1.方法传参
2.变量赋值
五、instanceof的作用是什么?
1.Java中的关键字
2.判断对象的类型,返回值是布尔类型(true or false)
3.instance:实例,其实就是对象,创建对象也叫实例化。
六、虚方法调用:
1.虚方法调用:与方法重写有关
2.多态情况下:如果子类重写了父类的方法,方法的调用以子类为准。
public class Animal {
public void bark() {
System.out.println("~~~~");
}
}
class Dog extends Animal {
public void bark() {
System.out.println("wangwang~~~");
}
public static void main(String[] args) {
Animal animal = new Animal();
animal.bark();
Dog erha = new Dog();
erha.bark();
//子类对象被声明为父类类型
Animal dongwu = new Dog();
//面试题:输出什么?wangwang~~~
dongwu.bark();
}
}