方法重写,方法重载,static、this、super、final关键字。

方法的重写:
当我们两个类之间存在继承关系,子类觉得父类的某个方法不好用,可以通过重写来实现调用方法的时候自己控制,条件是方法名、参数、返回值必须一模一样,方法体不一样。

方法的重载:
同一个类当中,方法名相同,返回值相同,参数不同(类型,个数,顺序),就叫方法的重载

public void gongji(int num1) {
        System.out.println("一个整数");
    }

    public void gongji(String num1) {
        System.out.println("一个字符串");
    }

    public void gongji(int num1 ,int num2){
        System.out.println("两个整数");
    }

    public void gongji(String num1, int num2) {
        System.out.println("一个字符串,一个整数");
    }

    public void gongji(int num1, String num2){
        System.out.println("一个整数,一个字符串");
    }

static关键字: (静态的)
可以修饰代码块、方法、属性
修饰方法:

public static void ziliaoshu() {
        System.out.println("一下回50%");
    }

staitc方法的调用方式就是类名.方法名(), 而不需要取创建对象了,
普通方法方法调用方式,创建对象, 对象名.方法名();使用static会大量消耗内存,所以我们不推荐方法使用static, 但是有些方法我们使用static可以提升效率。
频繁调用的方法就用staitc修饰,

static修饰属性:
private static int mp;

注意:在java虚拟机中,只要是static修饰的属性和方法,就一定会先分配内存空间,即使代码不执行,我们static修饰的属性和方法也会常驻内存,
static修饰的属性和方法永远只有独一份,和对象无关,

static叫做类数据,和对象无关。
非static叫对象,和类无关

访问规则:
/**
* 非静态方法可以访问静态变量和非静态变量
*/
public void showInfo() {
System.out.println(this.num3);
System.out.println(this.num2);
}

/**
 * 静态方法不能出现this关键,静态方法加载在创建对象之前
 * 静态方法就不能访问非静态变量
 */
public static void showInfo2() {
    System.out.println(num3);
    System.out.println(num2);
    System.out.println(Audi.num2);
}

thinaking in java 表示静态变量不建议使用对象名,对象名访问,而使用类名访问,
所以我们设计有一个原则,一般staitc的属性或者方法都是public的。

代码块: {}

类{
代码块

方法

属性

构造器

}

父类静态代码块,父类静态变量,父类静态方法, 子类静态代码块 ,子类静态变量,子类静态方法

父类代码块,父类构造器 子类代码块,子类构造器

java的 this关键字:指代当前对象的引用
java的super关键字; 指代当前对象父类的引用

public Audi() {
    //调用父类构造器
    super();
    //调用父类有参构造器
    super(1);
    super.showInfo();
    super.num = 10;
    System.out.println("子类构造器。。。。");
    this.num2 = 200;
    this.num3 = 300;

}
所以super就是一个父类的对象,对象能调方法,属性,super都可以
super和this调用构造器必须在代码的第一行

final关键字: 永久的,长久的

final是可以修饰类,方法,属性

final修饰类,表示类不能被继承,可以防止方法被重写
package demo_final;

public final class Car {

}

final修饰方法:表示方法不能被重写

public class Car {
public final void info(){

}

}

final修变量,表示值不能被修改,就是常量的意思
//常量
private final String word = “你好”;

猜你喜欢

转载自blog.csdn.net/sky274548769/article/details/80540379