子类的属性权限问题

父类:

abstract class Shape{
  public $name;
  //形状的面积计算方法
  abstract function area();
  //形状的周长计算方法
  abstract function circumference();
  //形状的表单
  abstract function view();
  //形状的验证
  abstract function check();
    }

子类:

class Rect extends Shape{
  private $length;
  private $width;
  private $name;
   ......

前台报如下错误:

问题原因:父类中$name的权限设置为public,子类中$name再次设置为private,这在PHP中是不允许的。

解决方法:将$name的属性定义删除。

时间: 2024-10-19 17:50:39

子类的属性权限问题的相关文章

重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件

为什么会需要这样子的一种方法来实现隐藏或者显示一个cell中的某些控件呢? 其实,隐藏cell中某些控件可以直接在tableView:cellForRowAtIndexPath:方法中直接实现,我们需要判断外部变量比如bool值来决定是否显示这个控件,但需要额外的代码写在tableView:cellForRowAtIndexPath:方法当中,如果我们把bool值传递给该cell让其自己判断是否显示隐藏这个控件,可读性将会大幅增加:) 效果: 源码: YXCell.h // // YXCell.

笔记 属性 权限 用户 临时权限(猿课精讲1.6-2.0)

1.6 文件或目录属性信息 ls -l 看目录的详细信息 - 普通文件 d 目录 s 进程间通信 c 字符设备 b 块设备 l 软连接(快捷方式) p管道文 件 所属主 所属组 其他人 权限rwx ls -li inode号 ls -la 111 有两个子目录 ls -lh 根据文件大小更改单位 1.7 chmod命令 更改权限 chmod r=4 w=2 x=1 rwx=7 r-x=5 r--=4 --x=1 chmod 744 1.txt == chmod u=rwx,g=r--,o=r--

每日问题之子类字段属性使用父类的非静态字段属性错误

想在子类的字段.属性里调用父类的非静态字段.属性是不可行的,因为字段.属性的初始化是在类的构造函数之前. 比如子类调用父类的字段,需要初始化父类,但是父类没有初始化的时候你调用父类的字段.属性就会出错. class Son: Father { public string sonKey = "son" + base.fatherKye; public void sonMethod() { sonKey = "son" + base.fatherKye; } publi

Java基础之子类父类属性覆盖

当java的子类和父类具有相同名字的属性时,到底java是怎么处理的. 先看代码: package com.joyfulmath.study.field; public class Person { public String name; public String getName() { return name; } } package com.joyfulmath.study.field; public class Student extends Person { public String

扩展子类的属性

子类继承父类的时候,可以继承并重写父类的property,如下所示: class Person: def __init__(self, name): self.name = name # Getter function @property def name(self): return self._name # Setter function @name.setter def name(self, value): if not isinstance(value, str): raise TypeE

求解:为什么父类没有的属性,在强制转换成子类后却有值了

foreach (M912 m912 in m912List) { var m934 = (M934)m912; //强制转换后,父类M912 中没有的属性m918List在转换后的子类m934中能访问且有值 } 说明:其中M912 是父类M934 是子类 m918List是子类M934的一个属性 疑问,为什么父类没有的属性,在强制转换成子类后却有值了,这种情况是如何实现的? ************************************ 问题:将子类实例赋值给父类的实例后,子类对象所

php父类中访问子类的静态属性

在类中,我们可以通过self访问本类或父类中的静态属性/静态方法,可以通过parent访问父类中的静态属性/静态方法. 可我们却没有关键字从父类中的方法访问子类的静态属性,这是由于父类是先于子类创建的,所以从逻辑上来讲从父类中访问子类的静态属性并不是一个好的选择. 但有些时候我们不得不这样做,那么我们可以通过get_class()方法实现: get_class()返回的是本对象名, get_class(obj)返回的是对象obj的名, 看下面这个例子: <?php class A {    fu

父类,子类,静态属性,静态代码块,构造代码块,构造函数,执行顺序

1 package demo; 2 //父类 3 public class FatherClass { 4 5 private static String strFather="父类静态属性----1"; 6 7 static{ 8 System.out.println("父类静态代码块----1"); 9 } 10 11 { 12 System.out.println("父类构造代码块----3"); 13 } 14 15 public Fat

spring 为某类注入的属性 其子类无法使用

在spring中注入属性的目标是实例而不是类 子类从父类继承的值是与实例无关的 所以子类的属性并没有被赋值 工作背景: 有一个BaseService 有3个Dao成员 DaoA DaoB DaoC 并且 spring 为这3个成员分别注入了值 这三个Dao是直接可以拿过来执行数据库访问的 但是有一个BaseService的子类 xxx 也是拿来执行数据库访问的 表面上 它可以正常的使用 DaoA DaoB 这让我产生了误解,以为这些是从父类拿过来的 但是 需求需要xxx去使用DaoC来访问数据库