继承:

继承是通过:extends关键字实现的,修饰符如果是私有的,那么该类只在当前包可见,如果是共有的,那么可以在整个项目上可见,不可使用,private,protected修饰的类。

protected修饰的属性和方法,在同一个包下和子类可以访问,其他的不行。

继承父类的方法:public class 本类(子类) extends 父类名{}

public class zi extends fu{}

继承的特点:

  • 继承public和protected修饰的属性和方法,无论父子类是否在一个包里。
  • 继承默认的权限修饰符修饰的属性和方法,但是父子类必须在同一个包里。
  • 无法继承私有修饰符修饰的属性或者方法
  • 无法继承父类的构造方法。
super关键字

在子类里的构造方法中,使用super关键字可以访问父类的构造器{可以访问,但是不能继承。}

super(name); //super调用的是方法,不是属性。调用了父类的构造方法,只能出现在子类的构造方法中。

super.name; //调用的是,父类的属性。

super.name(); //调用的是父类的方法。

重写:

如果要在子类里面重写父类里面的方法,要满足一下条件:

  • 子类里面重写父类里面的方法,方法名必须一致。
  • 要有相同的列表参数。
  • 返回值类型要一致。
  • 重写方法的修饰符等级不能比父类要更改的方法等级小。

重写不是更改父级类里面的东西,只是添加而已,父类的东西不会改变,只是在父类方法内容执行后,加上子类重写类里执行过后的内容。

重载:

是在一个类里,有多个构造器,存在的条件是:

  • 方法名一致,参数列表不同,与返回值类型,访问修饰符无关。
public SL2_1() {
		
	}
public SL2_1(String name) {
		this.name=name;
	}
public SL2_1(String name,string sex) {
		this.name=name;
    	this.sex=sex;
	}
抽象类和抽象方法:

以abstract修饰的类和方法就是抽象类和抽象方法。

public abstract class SL2_1 {}
public abstract void SL2_1(){}

抽象类不能通过new实例化,而且不能用来修饰属性和构造方法。

抽象类里面可以有很多,有一个,或者没有抽象方法,甚至可以全是。
抽象方法只能声明,没有方法实现,抽象的方法必须有一个抽象的类,子类必须重写所有的抽象方法才可以实例化,否则他还是一个抽象类。

final修饰符:

用final修饰的类不能被继承。

用final修饰的方法不能被子类重写。

用final修饰的变量将全部变成常量,只能赋值一次。

用final修饰引用型变量时,变量的值是固定不变的,而变量所指的对象属性是可以变得。

abstract注意:

abstract不能和private同时修饰一个方法。

abstract不能和static同时修饰一个方法。

abstract不能和final同时修饰一个方法或者是类。