Java中静态方法和非静态方法的区别

您所在的位置:网站首页 java静态方法和普通方法的关系 Java中静态方法和非静态方法的区别

Java中静态方法和非静态方法的区别

2024-07-14 08:49| 来源: 网络整理| 查看: 265

标题 Java中静态方法和非静态方法的区别 概念

方法前加了static关键字,则该方法称为静态方法,否则为非静态方法。例如public void say(){};public static void sing(){},say方法就是一个非静态方法,而sing是一个静态方法。他们两者在方法的调用等方面有很大的不同

方法调用上的区别 静态方法:

在一个类中若是想调用另一个类的静态方法可以直接使用类名.方法名的方式点出该方法。

//Person类 public class Person { //静态方法 public static void sing(){ System.out.println("唱了一首歌"); } } //测试类 public class Test { public static void main(String[] args) { //调用方法:类名.方法名 Person.sing(); } } 非静态方法:

如果想要在类中调用一个非静态方法需要用new实例化这个方法,基本形式为:对象类型 对象名= new 构造方法 然后使用对象名.方法名可以调用该方法

//Person类 public class Person { //非静态方法 public void say(){ System.out.println("说了一句话"); } } //测试类 public class Test { public static void main(String[] args) { //实例化 Person xiaoming=new Person(); xiaoming.say(); } } 继承中的区别 静态方法:

父类:Person 类 子类:Student类

//父类 public class Person { public static void sing(){ System.out.println("Peron唱了一首歌"); } } //子类 public class Student extends Person { public static void sing(){ System.out.println("Student唱了一首歌"); } } //测试类 public class Test { public static void main(String[] args) { Student hhh=new Student(); hhh.sing(); //父类的引用可以指向子类 Person sss=new Student(); sss.sing(); } }

结果为:在这里插入图片描述 由此可知,在继承中静态方法的调用只和实例化左边,即定义的数据类型有关,本例即只与Student hhh=new Student()、Person sss=new Student()中左边Student和Person有关。

非静态方法 //父类 public class Person { public void sing(){ System.out.println("Peron唱了一首歌"); } } //子类 public class Student extends Person { //此时对父类的sing方法进行了重写 public void sing(){ System.out.println("Student唱了一首歌"); } } //测试类 public class Test { public static void main(String[] args) { Student hhh=new Student(); hhh.sing(); Person sss=new Student(); sss.sing(); } }

结果为: 在这里插入图片描述 当方法为非静态方法时,构成子类重写了父类的方法。本例中就是Student类重写了Person类中的sing方法,由此可知方法的重写只存在于非静态方法中。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3