栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础--多态

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础--多态

多态

概念:事务的多种形态。

在java中的表现:
1)方法的重载(方法名相同,方法参数不同,包括参数的类型和个数都不同,叫做方法的重载):是同一个方法的多态。
2)多态字符类间的成员方法特点:java中所说的多态更多的指的就是对象的多态;具体说就是父类类型的引用或者接口类型的引用指向子类对象或者实现类对象;

多态子父类间成员属性的特点:
1)父类有的成员属性子类没有,对象.属性 使用的都是父类的;
2)父类没有的成员属性子类有,对象.属性 拿不到,报错
3)父类和子类中具有相同属性时,对象.属性 拿到的仍然是父类的;
总结:多态 对象.属性 拿到的始终是引用变量(引用对象)所属的父类的属性,因为引用的是父类的引用,所以始终是父类的;其次就是多态思想不是应用在成员属性上的;

多态子父类间成员方法发特点:
1)父类有的成员方法子类没有,对象.方法 使用父类的;
2)父类没有的成员方法即使子类有,对象.方法 也拿不到会报错;
3)子父类见出现相同方法时,对象.方法 使用的是子类覆盖继承自父类的方法;

多态所应用的地方:就是子父类间覆盖的方法的,父类引用所指向的是子类对象,那么就只需改变父类引用所指向子类对象,就能动态的改变所执行的子类覆盖父类的方法;

public class Demo1{
	public static void main(String[] args){
		//创建对象
		A a = new C();
		test(a);
	}
	public static void test(A a){
		
		a.show3();//父类没有show3()
		if(a instanceof B){
			B b = (B)a;
			b.show2();
		}
		if(a instanceof C){
			C c = (C)a;
			c.show3();
		}
	}
}

class A{
	public void show1(){
		System.out.println("A.....show1");
	}
}
class B extends A{
	public void show2(){
		System.out.println("B....show2");
	}
}
class C extends A{
	public void show3(){
		System.out.println("C....show3");
	}
}

可以用继承的方式看方法和变量是否被继承
可以用多态的方式看方法是否被覆盖
多态就是应用在父类引用子类对象(覆盖方法)这方面的

public class Demo1 
{
	public static void main(String[] args) 
	{
		B b = new B();
		System.out.println(b.x);//10
		b.show();//A..static..show()
		System.out.println("-----------------------------------------");
		System.out.println(A.x);//10
		A.show();//A..static..show()
		System.out.println("-----------------------------------------");
		System.out.println(B.x);//10
		B.show();//A..static..show()
		System.out.println("-----------------------------------------");
		
		//多态 
		A a = new B();
			
		a.show();//A..static..show()
	}
}
class A
{
	//成员变量
	public static int x = 10;
	//成员方法
	public static void show(){
		System.out.println("A..static..show()");
	}
}
class B extends A
{
	//成员方法
	public static void show(){
		System.out.println("B..static..show()");
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/306773.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号