zoukankan      html  css  js  c++  java
  • final、static关键字

    final关键字
    public class Test {
        public static void main(String[] args) {
            //final 修饰局部变量  (基本数据类型)
            //一旦赋值终身不变
            final int i; i=1;//只能赋值一次
            //final 修饰局部变量  (引用数据类型)
            //一旦赋值一个地址,终身不变
            //final Zi z=new Zi();
        }
    }
    package com.oracle.demo19;
    //用final修饰的类不能被继承但是可以继承其他类    太监类
    public final class FU {
        
    }
    public class Person {
        //当final修饰成员变量的时候必须手动赋值
        //final String name="张三";
        //或者构造方法赋值
        final String name;
        public Person(String name){
            this.name=name;
        }
    }    
    final修饰的方法不可以被子类重写,但父类中没有被final修饰方法,子类重写后可以加final。
    Static关键字
    public class Student {
        private String name;
        private static String schoolName;//static修饰
        public Student(String name, String schoolName) {
            super();
            this.name = name;
            Student.schoolName = schoolName;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSchoolName() {
            return schoolName;
        }
        public void setSchoolName(String schoolName) {
            Student.schoolName = schoolName;
        }
    }
    public class Fu {
        static int i=1;
        public static void f(){
            System.out.println("这是父类静态方法");
        }
    }
    public class Zi extends Fu{
        static int i=2;
        public static void f(){
            System.out.println("这是子类重写后的方法");
        }
    }
    public class Test {
        public static void main(String[] args) {
            Student s1=new Student("小红","清华大学");
            Student s2=new Student("小明","清华大学");
            Student s3=new Student("小亮","清华大学");
            s2.setSchoolName("北京大学");//修改任意一个全部修改了
            System.out.println(s1.getSchoolName());
            System.out.println(s2.getSchoolName());
            System.out.println(s3.getSchoolName());
            Fu f=new Zi();
            System.out.println(Fu.i);//类名.调用
            Fu.f();
        }
    }
    多态调用方法中,编译看=左边,父类有,编译成功,父类没有,编译失败
    运行,静态方法,运行父类中的静态方法,
    运行,非静态方法,运行子类的重写方法
    成员变量,编译运行全是父类
  • 相关阅读:
    applications_manager很经典的应用性能监控工具
    eureka分区的深入讲解
    Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警
    solidity 学习笔记(3) 函数修饰符/继承
    以太坊
    solidity 学习笔记 2 (二维数组)
    solidity学习笔记
    女巫攻击---针对联盟链的攻击
    区块链知识点
    [转]PBFT 算法详解
  • 原文地址:https://www.cnblogs.com/zhaotao11/p/10218660.html
Copyright © 2011-2022 走看看