public static void main(String[] args) {
//7.创建子类对象进行测试
ComputerStudent s1 = new ComputerStudent(1,“张三”,‘男’,98);
MathStudent s2 = new MathStudent(2,“李四”,‘女’,89);
ChineseStudent s3 = new ChineseStudent(3,“王五”,‘女’,100);
//8.利用创建好的对象进行方法测试
s1.proClass();
s1.hobby();
s2.proClass();
s2.hobby();
s3.proClass();
s3.hobby();
//9.创建父类对象进行方法测试
Student s0 = new Student(0,“海绵宝宝”,‘男’,3);
s0.thinkingClass();
s0.proClass();
}
}
//1.定义学生类
class Student{
//2.定义学生的属性
int sno;//学号
String name;//姓名
char gender;//性别
double score;//分数
//6.1添加父类的全参构造
public Student(int sno, String name, char gender, double score) {
this.sno = sno;
this.name = name;
this.gender = gender;
this.score = score;
}
//3.1定义父类的功能
public void thinkingClass(){
System.out.println(“正在上思修课”);
}
//3.2定义父类的功能
public void proClass(){
System.out.println(“正在上专业课”);
}
}
//2.定义学生类的子类,区分不同的专业
class ComputerStudent extends Student{//计算机专业学生
//6.2生成子类的全参构造,并调用父类的全参构造
public ComputerStudent(int sno, String name, char gender, double score) {
super(sno, name, gender, score);
}
//4.1重写父类的功能
@Override
public void proClass(){
System.out.println(“正在上编程课”);
}
//5.1定义子类的特有功能
public void hobby(){
System.out.println(“喜欢敲代码~”);
}
}
class MathStudent extends Student{//数学专业学生
//6.3生成子类的全参构造,并调用父类的全参构造
public MathStudent(int sno, String name, char gender, double score) {
super(sno, name, gender, score);
}
//4.2重写父类的功能
@Override
public void proClass(){
System.out.println(“正在上数学理论课”);
}
//5.2定义子类的特有功能
public void hobby(){
System.out.println(“喜欢学模糊数学”);
}
}
class ChineseStudent extends Student{//中文专业学生
//6.4生成子类的全参构造,并调用父类的全参构造
public ChineseStudent(int sno, String name, char gender, double score) {
super(sno, name, gender, score);
}
//4.3重写父类的功能
@Override
public void proClass(){
System.out.println(“正在上写作课”);
}
//5.3定义子类的特有功能
public void hobby(){
System.out.println(“喜欢写小说”);
}
}
1.static可以修饰成员变量和方法
2.被static修饰的资源称为静态资源
3.静态资源随着类的加载而加载,最先加载,优先于对象进行加载
4.静态资源可以通过类名直接调用,也被称作类资源
5.静态被全局所有对象共享,值只有一份
6.静态资源只能调用静态资源
7.静态区域内不允许使用this与super关键字,因为this代表本类对象,super代表父类对象,有静态时还没有对象呢~