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修饰的成员仅对本类可见
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix