权限修饰符、方法的重写

权限修饰符

权限修饰符有四个:

  public  default protected private

private 是当前类访问级别,如果我们使用这个修饰符来修饰。这个成员只能被该类的其他成员访问,其他类无法直接访问

defauit:如果一个类或者类的成员不使用任何访问修饰符,它被称为默认修饰符,这个类或者其他成员只能被本包中的其他类访问

protected(子类访问级别):如果一个类被它修饰,那么这个成员既能被同一包下的其他类访问,也能被不同包下该类的子类访问。

public (公共访问级别):这个访问修饰符是最宽松的,如果被public修饰那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在同一个包中。

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

类,只要public和abstract和final来修饰,或者不加 private 和protected 可以修饰内部类

 

访问权限修饰符的宽严关系:

 public  > protected > defauit >private

 

方法的重写

如果我们在主方法写的方法不满意的话,我们可以在子进行修改,这个就叫做重写

重写方法:

1.方法的名称可以相同,参数列表可以相同,返回值类型或者子其他子类,访问修饰符不能严过父类

方法重写的注意事项:

1.父类中的私有方法不能被重写。构造方法不能被重写,子类重写父类方法时权限不能更底

重载和重写的区别:

重载:

重载必须在一个类中

方法名字相同

参数列表不同

重写:

方法的名称可以相同

参数列表可以相同

 

我们来写一个重写的案例:

public class Animal {
String name;
int age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "Animal{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}

public void eat(){
System.out.println("我的年龄"+age);
}

public Animal(String name, int age) {
this.name = name;
this.age = age;
}

public Animal() {
}
}

主方法定义get,set eat方法。

我们使用子类来重写:

public class Cat extends Animal{


public void pringName(){
System.out.println(super.name);
}

@Override
public void eat() {
super.eat();
}
}

我们来看测试类:

    public static void main(String[] args) {
Cat cat = new Cat();
cat.setName("妞妞猫");
cat.setAge(1);
cat.eat();
System.out.println("名字"+cat.getName()+"年龄"+cat.getAge());
cat.eat();
cat.pringName();
}
}

运行结果:

 

posted @ 2022-06-16 19:42  一位程序袁  阅读(147)  评论(0编辑  收藏  举报