Java语言中关于覆盖的问题

问个问题,刚学Java
一个结论是:属性不存在覆盖

public class Test 
{
    int t;
    public static void main(String[] arges)
    {
        T t=new T();
        t.doSome();
    }
}
class T extends Test
{
    int t=6;
    public void doSome()
    {
        System.out.println(t);//结果是6
    }
    
}

那么这段程序里子类应该继承了父类的t,那么子类里不是应该有两个t了吗,为什么没有编译报错变量名重复。

同样的,私有方法不能覆盖

public class Test 
{
    private void f()
    {
        
    }
    public static void main(String[] arges)
    {
        T t=new T();
        t.doSome();
    }
}
class T extends Test
{

    public void doSome()
    {
        
    }
    public void f()
    {
        
    }
}

那么父类中的f()方法不是应该继承到子类了吗?为什么没有编译报错方法名重复呢?

java-类(class)继承,重写,重构,抽象,接口等 - 一叶风语 - 博客园 类的继承格式 在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下: 为什么需要继承 接下来我们通过实例来说明这个需求。 开发动物类,其中动物分别为企鹅以及 https://www.cnblogs.com/daemon-czk/p/10590428.html
见 重写 部分
有帮助望采纳

  1. 私有的属性,方法不存在“覆盖”,自己类的就是自己类的,对父类,子类都不可见。
  2. 私有以外的属性,方法,也不存在“覆盖”,但按继承关系,存在父类对子类的可见性的问题,也就是子类能看到父类的方法。
    访问的时候先找自己类的属性,方法,找不到再一级一级的往上找。
    当然也可以用super来指定不用自己的,用上级的。