面对对象11:方法重写

package com.oop;

import com.oop.demo05.A;
import com.oop.demo05.B;

/*
* 封装的意义
* 1.提高程序的安全性
* 2.隐藏代码的实现细节
* 3.统一接口
* 4.系统的可维护性增加了
* */
public class Application {
    //静态方法和非静态方法区别很大!!!
    //有static时,b调用B类方法,因为b是用b类定义的
    //没有static时,b调用的是对象的方法,而b是用A类new的
    //静态方法://方法的调用只和左边定义的数据类型有关
    //非静态方法:可以重写,和new的对象有关
    public static void main(String[] args) {
        //方法的调用只和左边定义的数据类型有关
        A a = new A();
        a.test();//当有static时输出A=>test(),无时输出A=>test()
        //父类的引用指向了子类
        B b = new A();
        b.test();//当有static时输出B=>test(),无时输出A=>test()



    }
}
package com.oop.demo05;

//重写都是方法的重写,和属性无关
public class B {

    public void test(){
        System.out.println("B=>test()");
    }

}
package com.oop.demo05;

public class A extends B{
    //public static void test(){
      //  System.out.println("A=>test()");
    //}

    @Override//注解:有功能的注释,这里是重写的意思
    public void test() {
        System.out.println("A=>test()");
    }
}

 

posted @ 2024-03-26 16:48  三口一头居  阅读(9)  评论(0)    收藏  举报