• 类的继承与访问控制


    1、java中使用extends关键字来实现类的继承,语法规则为

    <modifier> class <name> [extends<superclass>]

    {.......}

    2、通过继承,子类自动拥有了基类(superclass)的所有成员(变量和方法)

    3、java只允许单继承不允许多继承即一个子类只能拥有一个基类,但一个基类可以派生出多个子类。

    例如:

    class Person {
        private String name;
        private int age;
        public void setName(String name) {
        	this.name=name;
        }
        public void setAge(int age) {
        	this.age=age;
        }
        public String getName(){
        	return name;
        }
        public int getAge(){
        	return age;
        }
    }
    
    class Student extends Person {
        private String school;
        public String getSchool() {
        	return school;
        }
        public void setSchool(String school) {
        	this.school =school;
        } 
    }
    
    public class Test {
        public static void main(String arg[]){
            Student student = new Student();
            student.setName("John");
            student.setAge(18);
            student.setSchool("SCH");
            System.out.println(student.getName());
            System.out.println(student.getAge());
            System.out.println(student.getSchool());
        }
    }
    

    访问控制:

    1、   java权限修饰符public protected private置于类的成员定义前,用来限定其他对象对该类对象成员的访问权限

    private :在类的内部

    default::在类的内部以及在同一个包内

    protected:在类的内部以及在同一个包内以及在子类中可以使用

    public :在任何地方都可以使用

    2、对于class的权限修饰只可以用public 和default

      public类可以在任何地方使用

      default类只可以在同一个包内使用

    程序1:

    public class TestAccess {
    }
    
    class T {
    	private int i = 0;
    	int j = 0;
    	protected int k = 0;
    	public int m = 0;
    	
    	public void m() {
    		i = 9;
    	}
    }
    
    class TT {
    	public void m() {
    		T t = new T();
    		System.out.println(t.j);
    	}
    }
    

     如果将t.j变成t.i的话程序报错

    程序2:

    package m;
    
    public class TestProtected extends T {
    	public void mthod() {
    		System.out.println(k);
    	}
    }
    

      将上述代码和刚刚添加的代码放在一个包下面,这段代码是可以用的

  • 相关阅读:
    使用dozermapper,处理不了LocalDateTime的映射问题:java.lang.NoSuchMethodException: java.time.LocalDateTime.<init>()
    mybatis-plus使用Wrapper自定义sql时出现错误:Invalid bound statement (not found)
    com.baomidou.mybatisplus.core.mapper 不存在
    python爬虫
    DRF源码系列分析
    python学习目录
    脚本加载django环境
    celery定时任务
    用脚本创建django-orm数据库表数据
    关于python很吊的一项技术!!!!!
  • 原文地址:https://www.cnblogs.com/white-the-Alan/p/10169191.html
Copyright © 2020-2023  润新知