志在指尖
用双手敲打未来

Java super关键字

super的留意事项:
1、super必需呈现在子类中(子类的办法和结构办法中),而不是其他位置
2、super用于访问父类的成员,例如父类的属性、办法、结构办法
3、访问权限的限制,例如无法经过super访问父类的private成员。
super的运用场景
1、子类中运用了办法重写,但是又想调用父类的被重写了的办法,就要运用super关键字
2、super在子类结构函数中显现调动父类的无参结构或者其他有参结构(假如不显现写super,那么初始化子类实例时会默许调用父类的无参结构,假如此时父类没有无参结构,编译器会报错)
super运用办法:
1、访问父类的属性或者对象,停止修正赋值操作=》super.变量/对象名;
2、直接访问并调用父类的办法=》super.办法名();
3、显式调用父类的结构办法,不论无参还是有参=》super()无参例子super(name)有参例子,假如子类不想调父类的无参结构,那么就必需要在子类的结构办法中显式的运用super调用父类的有参结构!!!java
父类:
复制代码
publicclassA{
publicintage=11;
publicA()
{
System.out.println(“BuildA(无参结构)”);
}
publicA(Stringname)
{
System.out.println(name+”BuildA(有参结构)”);
}
publicvoidHello()
{
System.out.println(“Hello,我是A办法里的Hello办法”);
}
}
复制代码
子类
复制代码
publicclassBextendsA{
publicB()
{
System.out.println(“BuildB(无参结构)”);
}
publicB(Stringname)
{
System.out.println(name+”BuildB(有参结构)”);
}
publicvoidHello()
{
System.out.println(“父类的age值是:”+super.age);//输出父类的成员变量
super.Hello();//显式调用父类的办法
System.out.println(“Hello,我是B办法里的Hello办法”);
}
}
复制代码
复制代码
publicclassCextendsA{
publicintage=99;
publicC(){
System.out.println(“BuildC(无参结构)”);
}
publicC(Stringname){
super(name);//显式调用父类的有参结构,假如不写这句的话,默许调用父类无参结构,也就是同等于super();
System.out.println(name+”BuildC(有参结构)”);
}
publicvoidHello()
{
System.out.println(“Hello,我是C办法里的Hello办法”);
}
}
复制代码
测试:
复制代码
publicclassTest{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
//子类实例化无参
//子类无参实例化,首先会默许调用父类的无参结构,再调用子类的无参结构
//Bb1=newB();//输出:【BuildA(无参结构)BuildB(无参结构)】
//子类实例化有参,子类有参结构显式调用父类的无参结构(假如不显式,默许还是调父类的无参结构)
//Bb2=newB(“猪”);//输出:【BuildA(无参结构)猪BuildB(有参结构)】
//子类实例化有参,子类显式的调用父类的有参结构
//Cc1=newC(“驴”);//输出:【驴BuildA(有参结构)驴BuildC(有参结构)】
//子类实例化,调用父类的办法
/*
Bb3=newB();
b3.Hello();
//*/
/*输出:
*BuildA(无参结构)
BuildB(无参结构)
父类的age值是:11
Hello,我是A办法里的Hello办法
Hello,我是B办法里的Hello办法
*/
//子类和父类有公共的成员变量
/*
Cc2=newC(“虎”);
System.out.println(“年龄:”+c2.age);//输出99
Aa1=newC(“虎”);
System.out.println(“年龄:”+a1.age);//输出11
//*/
//实例化子类,转为父类对象,输出的成员变量是父类的值,调用的办法是字类重写的办法
Aa2=newC();
System.out.println(“年龄:”+a2.age);//输出11
a2.Hello();//假如C有重写办法,就显现C内的办法,假如没重写,就显现A的办法
}
}

未经允许不得转载:IT技术网站 » Java super关键字
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载