java属性继承静态_java中静态属性和和静态方法的继承问题 以及多态的实质

##接口中的实现和类中的继承是两个不同的概念,因此不可以说实现接口的子类从接口那里继承了常量和方法

例证如下:

package com.etc;

public  class A//父类

{

public

static String str = "静态属性";

public

String name = "非静态属性";

public

static void sing()

{

System.out.println("静态方法");

}

public void

run()

{

System.out.println("非静态方法");

}

}

package com.etc;

public class B extends A //子类B

{

public

static String str = "B该改写后的静态属性";

public

String name ="B改写后的非静态属性";

public

static void sing()

{

System.out.println("B改写后的静态方法");

}

}

package com.etc;

public class C extends A //子类C继承A中的所有属性和方法

{

}

package com.etc;

public class Test//测试类

{

public

static void main(String[] args)

{

C c = new

C();

System.out.println(c.name);

System.out.println(c.str);

c.sing();//输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承

A c1 = new

C();

System.out.println(c1.name);

System.out.println(c1.str);

c1.sing();//结果同上,输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承

B b = new

B();

System.out.println(b.name);

System.out.println(b.str);

b.sing();//结果都是子类的非静态属性,静态属性和静态方法,这里和非静态属性和非静态类的继承相同

A b1 = new

B();

System.out.println(b1.str);//结果是父类的静态属性,说明静态属性不可以被重写,不能实现多态

System.out.println(b1.name);//结果是父类的非静态属性,说明非静态属性不可以被重写,不能实现多态

b1.sing();//结果都是父类的静态方法,说明静态方法不可以被重写,不能实现多态

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值