static: static是用来申明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝,局部变量不能申明为static;
用static修饰的方法叫做静态方法,静态方法不能使用类的非静态变量。静态方法是从参数列表得到数据,然后计算这些数据。
package class3;
import java.util.Date;
public class MainClass {
public static int a = 10;
public static final String name = "张三";
public static final int b = a;
public static void main(String[] args) {
//name = "李四"; //此处会直接报错。
a = 20;
System.out.println("final修饰的引用变量发生改变 改变的值为"+a);
}
}
final:final的引用不能改变,但是final修饰的变量的值是可以改变的;此处稍作解释:final修饰的变量就相当于一个常量,其值是不能改变的,但是当final修饰的变量是一个引用变量,那么这个引用变量的地址就不能改变,但是引用变量内部的内容是可以改变的,就像你记住了人家的门牌号,但是你不能确定人家家里面有哪些人,可能有新生儿,可能结婚了增加了一位新人等。Final类不能被继承,没有任何的类可以继承final类的任何特性;
package class3;
public class MainClass {
public static int a = 10;
public static final String name = "张三";
public static final int b = a;
public static void main(String[] args) {
//name = "李四";//此处会直接报错
a = 20;
System.out.println("final修饰的引用变量发生改变 改变的值为"+a);
}
}
abstract: 利用abstract修饰的类称之为抽象类,抽象类不能够实例化对象,但是可以利用类来继承抽象类 继而使用抽象类,抽象类中可以没有抽象方法,但是抽象方法一定要存在于抽象类中。利用abstract修饰的方法 我们称之为抽象方法,抽象方法是不能够直接被使用的,必须利用子类实现抽象方法所在的类来使用抽象方法,抽象类中的抽象方法一定要被子类所继承,除非该子类是抽象类,一个类只能继承一个抽象类,但一个类可以实现多个接口。
main:
package class3;
import java.util.Date;
public class MainClass {
SonClass staff = new SonClass();
staff.name = "gwl";
staff.age = 25;
staff.job ="打杂";
Date date_hiredate = new Date();
date_hiredate.setTime(2020-2-29);
Date date_birthday = new Date();
date_birthday.setTime(1994-8-1);
staff.setHiredate(date_hiredate);
staff.setBirthday(date_birthday);
staff.setSalary(8900.150);
staff.setIDCard(1035063);
System.out.println(staff.toString());
staff.toString();
}
}
abstract修饰的父类
package class3;
import java.util.Date;
public abstract class AbstractTest {
public String name;
public int age;
public String job;
private long idCard;
private double salary;
private Date hiredate;
//预留重写构造方法;
public long getIDCard() {
return idCard;
}
public void setIDCard(long idCard) {
this.idCard = idCard;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return name+ "" +age+ "" +job+ "" +getIDCard()+ "" +getSalary()+ "" +getHiredate();
}
}
子类继承上述父类
package class3;
import java.util.Date;
public class SonClass extends AbstractTest{
private Date birthday; //新增的变量
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return name+ "" +age+ "" +job+ "" +getIDCard()+ "" +getSalary()+ "" +getHiredate()+getBirthday();
}
}
来源:https://www.cnblogs.com/givenline/p/12405608.html