java super 用法,Java继承super用法,super和this的区别。private default protected public 4中访问权限修饰符

一、Java的继承用extends关键字实现,super用于访问本类的父类的元素和方法。示例代码如下

1.父类 Person.java

package opp.superAndThisSuper指代父类;

public class Person {
    //权限的大小级别是 private  default  protected   public
    //可以被本类访问 : Yes       Yes      Yes        Yes
    //被本包(package):           Yes      Yes        Yes
    //被继承的子类访问:                    Yes        Yes
    //可被外包类访问:                                 Yes
    //此处想要子类能访问父类的属性 至少需要protected的权限修饰
    protected String name = "super";
}

2.子类Student.java

package opp.superAndThisSuper指代父类;

public class Student extends Person {
    private String name = "Student";

    public String getName(String name) {
        System.out.println("传入参数的name:"+name);
        System.out.println("子类的this.name:"+this.name);
        System.out.println("父类的super.name: "+super.name);
        return name;
    }


}

3.mian 方法类Demo.java

package opp.superAndThisSuper指代父类;

public class Demo {
    public static void main(String[] args) {
        String name = "main";
        new Student().getName(name);
    }
}

4.输出结果:

name 访问的是main中定义的String name=“main”;

this.name 访问的是子类Student类中的 private String name = “student”;

super.name访问的是 父类 Person中的 protected String name = “person”;

传入参数的name:main
子类的this.name:Student
父类的super.name: super

二、为什么Person 类中的属性 要使用 protected权限修饰?

    //权限的大小级别是 private  default  protected   public
    //可以被本类访问 : Yes       Yes      Yes        Yes
    //被本包(package):           Yes      Yes        Yes
    //被继承的子类访问:                    Yes        Yes
    //可被外包类访问:                                 Yes
    //此处想要子类能访问父类的属性 至少需要protected的权限修饰
    protected String name = "super";

1.private – default – protected – public 4中访问权限修饰符号的区别.

2.权限从小到大依次是 private-- defalt-- protected – public

3.权限细节分布:

从小到大的级别 private default protected public
可以被本类访问 Yes Yes Yes Yes
可以被本包(同package)访问 Yes Yes Yes
可以被继承的子类访问 Yes Yes
可以被外包的类访问 Yes

更多:

1.private的属性:只用本类的方法可以访问.
2.default(默认):对同包的类都有访问权限

3.protected : 专门为继承(extendx)设计的权限,课提供本包类的子类的访问。

4.public :在外包里的类也可访问权限全开。

三、super注意:

1.super (),this()调用父类的构造方法,必须在构造方法的第一行代码,(默认调用父类的无参构造)
2.super 只能出现在子类的方法和构造方法中.
3.super ()和this() 调用构造方法只能一个,因为必须在第一行,只用一个
发布了56 篇原创文章 · 获赞 2 · 访问量 487

猜你喜欢

转载自blog.csdn.net/jarvan5/article/details/105495913