JAVA多态(继承,向上转型,向下转型,)的理解还需要理解(强制转换,父类型作为形参或者返回值类型,父类型引用作为实参,)

   如标题所示,为了更好的理解JAVA多态(继承,向上转型,向下转型,)

   前提需要理解这两个内容

  1.强制转换,

  2.父类型作为形参或者返回值类型,父类型引用作为实参,

一.

1.强制转换

①基本类型的强转(俗称做手术,"切除一部分数据(组织)),如下

double a=0.0D;
    int b=(int)a;

②引用类型的强制转换===(就是)向下转型:父类型强转为子类型

发生在子类转型成父类(即向上转型)后(必须),再转型成子类型(一般用instan of判断下,以免发生类型转化异常)

class A{}//父类

class B extends A{}//子类

B b=new B();//此时b是B类型

A a=new B();//此时a是A类,即子类的向上转型

向上转型的条件是:①有继承结构②父类引用指向子类对象

B b2=(B)a;//向下转型(即引用类型强转)

向下转型(即引用类型强转)的条件是:①有继承结构②父类引用指向子类对象

2.父类型作为形参或者返回值类型,父类型引用作为实参,

二.多态

1.什么是多态,2.谁在多态,3.为甚么要多态?

答案:1.多态就是不同子类实现父类某个方法的代码不一样(实现不同的结果)

        2.是方法在多态,和父类,子类的成员变量(属性).父类,子类的特有方法没有一点关系,侠义理解,是有@@Override的方法的多态,与其他都没有关系.

         注释:不管子类父类中的成员变量和子类父类的特有方法有没有static修饰,你现在这个对象是父类就用分类的,是子类就用子类的

         3.用在

           1.引用类型的方法参数(形参),                            

           2.调用方法传的参数(实参),

           3.你写的方法的返回值类型.

           有什么好处慢慢体会

下边的类是瞎写的,小白不要较真慢慢看

public class ChineseFather {
	static String Color="黄色";
	int WMEyer=5000;
	public String sex="女";
	public void shengao() {
		System.out.println("古人身高平均160");
	}
	public static void shouming() {
		System.out.println("古人寿命平均35");
	}
}
public class Chinese extends ChineseFather {
	static String Color="黑色";
	String sex="男";
	public void eat() {
		System.out.println("子类去吃饭了");
	}
	@Override
	public void shengao() {
		System.out.println("我身高170");
	}
	public static void main(String[] args) {
		ChineseFather CF=new Chinese();
		System.out.println(CF.sex);
		System.out.println(CF.Color);
		CF.shengao();
		Chinese CF2=(Chinese)CF;
		CF2.shengao();
		System.out.println(CF2.sex);
		System.out.println(CF2.Color);
		System.out.println(((ChineseFather )CF2).Color);
		

	}
}

以上纯属个人观点,有不正之处,望看到后即使指出,

如果此篇对你有帮助,请一元支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值