zoukankan      html  css  js  c++  java
  • 类的继承与访问控制

    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);
    	}
    }
    

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

  • 相关阅读:
    平凡人生的忠告
    Visio建模
    2007的第一天....
    PowerDesigner12对SQL2005反向工程问题.
    强人画的画:)
    2006的最后一天
    ASP.NET生成树形显示的GridView
    输出由1~9组成和三组三位数,第二组是第一组的2倍,第三组是第一组的3倍,三组数字中无重复数字
    C#读取图片Exif信息
    C#读取数据库图片显示、缩小、更新
  • 原文地址:https://www.cnblogs.com/white-the-Alan/p/10169191.html
Copyright © 2011-2022 走看看