private 封装 extends继承 编译类型是爷爷 多态
整个继承过程构造器必须首行引用爷爷的构造器(用super)
点击查看代码
package com.hspstudy.Test1;
public class Extend_ {
public static void main(String[] a) {
GraFather graFather = new GraFather("勤才", "很强", "Smoking");
GraFather father = new Father("平", "非常强", "soilder");
GraFather mine = new Mine("康", "弱", "book","studying");
String name = graFather.getName();
System.out.println(mine);
}
}
/*
构造器儿子需要四个构造器,空的,有自己的,有父亲的,有爷爷的
private 封装 extends继承 编译类型是爷爷 多态
作用域很重要呀
*/
class Mine extends Father{
private String sprint;
public Mine(String name,String babay,String habay,String work) {
super(name,babay,habay,work);
}
public Mine(String name,String babay,String habay,String work,String sprint) {
super(name,babay,habay,work);
this.sprint = sprint;
}
public String getSprint() {
return sprint;
}
public void setSprint(String sprint) {
this.sprint = sprint;
}
@Override
public String toString() {
return "Mine{" +
"sprint='" + sprint + '\'' +
'}';
}
}
class Father extends GraFather{
private String work;
public Father(String name,String babay,String habay) {
super(name,babay,habay);
}
public Father(String name,String babay,String habay,String work) {
super(name,babay,habay);
this.work = work;
}
public String getWork() {
return work;
}
public void setWork(String work) {
this.work = work;
}
}
class GraFather{
private String name;
private String baday;
private String habay;
public GraFather(String name, String baday, String habay) {
this.name = name;
this.baday = baday;
this.habay = habay;
}
public void setName(String NA){
this.name = NA;
}
public String getName(){
return this.name;
}
public String getBaday() {
return baday;
}
public void setBaday(String baday) {
this.baday = baday;
}
public String getHabay() {
return habay;
}
public void setHabay(String habay) {
this.habay = habay;
}
@Override
public String toString() {
return "GraFather{" +
"name='" + name + '\'' +
", baday='" + baday + '\'' +
", habay='" + habay + '\'' +
'}';
}
}
作用域
1.在Java中最主要的是成员变量(属性)和局部变量。
2.局部变量是成员方法中的变量
3.Java中作用域分类:
(1)全局变量:也就是属性,作用于整个类体。
(2)局部变量:除属性外的其他变量,作用域为定义它的代码块中。
4.全局变量可以不赋值,因为有默认值。局部变量必须赋值后使用,因为没默认值。
使用细节之处
1.属性和局部变量可以重名,访问时遵循就近原则。
2.同一个作用域即成员方法中,两个局部变量不可以重名。
3.属性的生命周期较长,随着对象生存。局部变量生命周期较短,随着代码块生存(在一次方法调用过程中)。
4.作用域范围不同
全局变量:可以在本类使用,或其他类使用(通过对象的调用)
局部变量:只能在本类方法中使用
5.修饰符
全局变量/属性可以加修饰符
局部变量不可以加修饰符