小学生学习java的多态

多态

    多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。

   1.多态的规则:

      1.类与类之间 必须要有关系(继承关系)

      2.必须要有方法的重写(多态没有意义)

      3.(核心)父类的引用 指向 子类的对象(空间)

    

    2.多态如何使用成员变量?

         父类的引用只能访问子类空间中属于父类的那块空间

         编译:编译时要查看父类中是否有这个属性,没有就编译错误

         运行:运行时 要访问的是父类中的成员变量

         结论:当使用多态形式创建对象的时候,访问成员变量的时候,编译和运行都是看父类中的属性

    

    3.多态如何调用成员方法?

         编译:编译时需要看父类中是否有该方法,没有就报错,有就编译通过

         运行:运行时,调用的是子类重写父类的方法

         结论:编译看父类,运行看子类

    4.多态的好处:

         1.提高了代码可维护性(指的是继承)

         2.(核心)提高方法的扩展性

 

    5.多态的弊端:

         当使用多态的方式创建对象时,无法直接调用子类中特有的方法。

          注意:多态调用子类的特有的方法时,必须要先有向上的转型,才能进行向下的转型

public class Demo {
	public static void main(String[] args) {
		// 多态创建对象
		// 提升骗子的逼格
		// 提升了子类对象的类型---向上转型
		Person p = new PianZi();
		p.speak();
		// 如何调用子类特有的方法
		// 把装成人的骗子打回原形---向下转型 --- 使用强制类型转换
		PianZi pZ = (PianZi)p;
		pZ.hit();
		
	}
}

class Person{
	public void speak() {
		System.out.println("聊天"); 
	}
}

class PianZi extends Person{
	@Override
	public void speak() {
		System.out.println("洗脑"); // 方法重写
	}
	// 特有方法
	public void hit() {
		System.out.println("打人 威胁人");  //方法重写
	}
}

  


  

猜你喜欢

转载自blog.csdn.net/ZMW1224/article/details/80302592