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