静态变量:所有属性,其中一个一变其余全会变,新得赋值会覆盖旧得赋值,所有值会变成 最后一个得值
final表示 不可变,用于修饰方法使表示该方法不可重写,用于修饰类时表示该类不可以被继承
接口可以多实现,但是类支支持单继承,接口可以在继承接口。接口继承父类接口时会重写父类得所有抽象方法。
get方法时向外提供变量值,哪里接受就提供到哪不是由set接收,set则是将要赋值得付给set(arr a)中a处得变量,然后在从a开始向下进行赋值传递
列:
//set对下面对成员变量name进行 赋值
public void setName(String n){
name=n;
}
//对外 提供name属性
public String getName(){
return name;
}
继承:
继承就是子类继承父类得特征和行为,使得子类对象具有父类的实列域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
继承的作用:通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量你创建新类的时间,提高开发效率和开发质量。
在Java中通过extends关键字可以申明一个类是从另一个类继承而来的,一般形式如下:
class父类 {
................................//成员变量成员方法
}
class子类extends父类吗{
.................................//类体
}
///列如
class teacher{//声明一个teacher类为父类
String name; //定义父类的成员变量name,age
int age;
void show(){//定义父类成员方法,将成员变量输出
System.out.println(name);
System.out.priintln(age);
}
}
class Student extends teacher{//声明一个Student类为子类并继承父类
}
public class myfirst{
public .out.println("学生");
Student student=new Student();//声明一个Student类实列对象student
student.name="Tom";//子类调用父类的成员变量name并赋值
student.age=19; //子类调用父类的成原变量age并赋值
student.show(); //子类调用父类的成员方法show
}
运行结果
学生
Tom
19
注意:
子类不能选择性继承父类
Java不支持多重继承,但一个类可以实现多个接口,从而克服单继承的缺点
构造方法不会被子类继承,但是可以从 子类中调用父类的构造方法
继承的优点:
继承过来的字段和方法,可以像任何其他字段和方法一样直接使用
在子类中可以声明一个与父类中同名的新字段或者静态方法,从而隐藏父类中的字段或方法
可以在子类中编写一个父类当中具有相同名的新实列方法,这称为方法重写或者方法覆盖
可以在子类中编写一个调用父类构造方法的子类构造方法,既可以隐式地实现,也可以通过使用关键字super来实现。
重写和隐藏父类方法:
子类继承了父类中所有成员及方法,但在某种情况下,子类中该方法所表示的行为与其父类中该方法所表示的行为不完全相同,列如,在父类语言中定义了说话这个方法,而在子类中说i话的方法是不同的:外国人说英文,中国人说中文,这时我们就要隐藏或重写父类的方法。
重写父类中的方法:
当一个子类中一个实列方法具有与其父类中的一个实列方法相同的签名(指名称,参数个数和类型)和返回值时,称子类中的方法”重写“了父类的方法。
注意:
重写的方法具有与其所重写的方法相同的名称、参数书数量、类型和返回值
隐藏父类中的方法:
如果一个子类定义了一个静态类方法,而这个类方法与其父类的一个方法具有相同的签名(指名称、参数格式和类型)和返回值,则称在子类中的这个方法”隐藏“了父类中的该类方法
当被调用重写的方法时,调用的版本是子类的方法
当调用被隐藏的方法时,调用的版本取决于是从父类中调用还是从子类中调用
方法重写和隐藏后的修饰符
在子类中被重写的方法,其访问权限允许大于但不允许小于被重写的额方法,类如:父类中一个受保护的实列方法(protected)在子类中可以是公共的(public)的,但不可以是私有的(private)。如果有方法在父类中是static方法,那么在子类中也必须是static方法;如果一个方法在父类中是实列方法,那么在子类中也必须是实列方法。
子类访问父类私用成员:
子类继承其父类的所用public和protect成员,但不能继承父类的private
成员。那么如何在子类中访问到父类别的字段呢,我们可以在父类中提供用来访问其私有字段的public或protected方法,子类使用这些方法来访问相应的字段。
使用super关键字
使用super调用父类中重写的方法,访问父类中被隐藏的字段
子类重写了父类中的某一个方法,影藏父类中的字段,假如想在子类中访问到父类中被重写的方法和隐藏的父类字段,可以在子类中通过使用关键字super来调用父类中被重写的方法和访问吗父类中被隐藏的字段
使用super调用父类的无参构造方法:
子类不继承父类的构造方法
当使用super()时,父类的无参构造构造方法就会被调用
当使用带有参数的super()方法时,父类中的有参构造方法就会被调用
注意:
如果要初始化父类中的字段,可以在子类的构造方法中通过关键字super调用父类的构造方法
对父类的构造放的调用必须放在子类构造方法的第一行
如果父类构造器带有参数,则在子类