super关键字和访问权限修饰符

super关键字

this是代表当前成员 那super是用来访问父类的成员

super在java中表示的是访问父类的成员 可以访问父类的成员变量和成员方法

super和this的区别

被this修饰的变量 如果本类的成员变量中没有找到 同样会去父类中找

被super修饰的变量 如果父类的成员变量中没有找到 而子类中存在 就会出现编译错误

super关键字的格式

super.成员变量

super.成员方法

 

super.变量的代码:

父类

class vehicle{
private String brand;
private int price;
private String colour;

public String getBrand() {
return brand;
}

public void setBrand(String brand) {
this.brand = brand;
}

public int getPrice() {
return price;
}

public void setPrice(int price) {
this.price = price;
}

public String getColour() {
return colour;
}

public void setColour(String colour) {
this.colour = colour;
}

public vehicle(String brand, int price, String colour) {
this.brand = brand;
this.price = price;
this.colour = colour;
}

public vehicle() {
}

@Override
public String toString() {
return "vehicle{" +
"brand='" + brand + '\'' +
", price=" + price +
", colour='" + colour + '\'' +
'}';
}
}

子类中添加super

class carriage extends vehicle{
public carriage(String brand, int price, String colour) {
super(brand, price, colour);
}
}

测试类

 

 可以看到测试类中出现了编译错误 是因为我们并没有设置参数 如果想不出现这种错误方法

class carriage extends vehicle{
public carriage(String brand, int price, String colour) {
super(brand,price,colour);
}

public carriage() {
}
}

添加无参构造

super.方法

父类:

class vehicle{
private String brand;
private int price;
private String colour;

public String getBrand() {
return brand;
}

public void setBrand(String brand) {
this.brand = brand;
}

public int getPrice() {
return price;
}

public void setPrice(int price) {
this.price = price;
}

public String getColour() {
return colour;
}

public void setColour(String colour) {
this.colour = colour;
}

public vehicle(String brand, int price, String colour) {
this.brand = brand;
this.price = price;
this.colour = colour;
}

public vehicle() {
}

@Override
public String toString() {
return "vehicle{" +
"brand='" + brand + '\'' +
", price=" + price +
", colour='" + colour + '\'' +
'}';
}
public void rum(){
System.out.println("开始开车");
}
}

子类:

class carriage extends vehicle{

public void arr(){
super.rum();
}
}

测试类

public static void main(String[] args) {
carriage carriage = new carriage();
carriage.setBrand("宝马");
carriage.setPrice(500000);
carriage.setColour("蓝色");
System.out.println(carriage);
carriage.arr();
}

这是访问父类的方法 

运行结果

 

 这就是super关键字

访问权限修饰符

作用:表示被修饰的元素的访问权限

访问修饰符有四个:public、private、protected、default

访问权限修饰符可以被修饰的元素:

1.类 只有public、abstract和final能够修饰

2.成员变量

3.成员方法

 

四个修饰符的特点

1.public修饰成员对一切类可见

2.protected修饰的成员包下面 不同包下只有子类可见

3.default修饰的成员仅对同包下面的可见

4.private修饰的成员仅对本类可见

 

posted @   baimingze  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示