zoukankan      html  css  js  c++  java
  • 面向对象之继承05(属性覆盖)

    属性覆盖
    如果说现在子类定义了和父类完全相同的属性名称时,称为属性的覆盖
    观察属性覆盖

    class A{
    	public String str="Hello";	
    }
    
    class B extends A{
    	public int str=100;
    	public	void print(){ 
    		System.out.println(str);
    		System.out.println(super.str);
    	}
    }
    
    public class testDemo{
    	public static void main(String args[]){
    		B b = new B();
    		b.print();
    	}
    }
    


    一直强调,在任何开发之中,类中的属性必须封装(99%),封装之后,是没有意义的,因为父类定义的私有属性子类无法调用
    比较:关于super和this的区别?

    No. 区别 this super
    1 功能 调用本类构造、本类方法、本类属性 子类调用父类构造、父类方法、父类属性
    2 形式 先查找本类是否存在调用的结构,如果有则直接调用,否则去父类中查找 不查找子类,直接调用父类
    3 特殊 表示本类的当前对象 -

    在开发之中,对于本类或者父类的操作强烈建议加上"this"或者"super"这样好区分
    总结
    1.只要发生了继承关系,那么就一定会存在覆写的应用,覆写的应用以方法为主
    2.如果子类使用父类指定的方法,但是发现父类的方法实现不能够满足子类要求时使用覆写类的功能,同时保留父类的方法名称
    3.被子类覆写的方法不拥有比父类更严格的访问控制权限

  • 相关阅读:
    The Sixth Assignment
    The fifth assigiment
    网络编程
    面向对象
    python数据类型之集合
    python数据类型之列表
    python数据类型之字符串
    python数据类型之字典
    python数据类型之元组
    常用模块
  • 原文地址:https://www.cnblogs.com/anyux/p/11898953.html
Copyright © 2011-2022 走看看