美文网首页
父类属性和子类属性同名

父类属性和子类属性同名

作者: xiaoliman | 来源:发表于2017-08-07 08:24 被阅读0次

上转型中:

  1. 如果父类中的属性和子类的属性同名的时候, 父类对象认为认为子类的属性是特有的 , 父类定义的对象只调用自己的属性。
    2.即是当父类属性和子类属性同名时, 父类对象名 调用的就是 父类的属性,子类的对象名 调用的就是 子类的属性。
  2. 如果父类的方法和子类方法同名时,在上转型关系中,父类的引用指向子类的实体 ,父类的对象调用的是子类的方法。但是要注意,此时父类的对象名不能调用子类特有的方法,如果要调用,则需要下转型。

父类:

package com.qf.demo6;

public class Test {

    public static void main(String[] args) {
        Person  person = new Person();
        Student student = new Student();
        Person person2 = new Student();
        person2.eat();//父类的引用指向 子类的实体    父类的对象调用的是子类的方法
        System.out.println(person2.name);
        System.out.println(person2.age);
        
        Student student2 = (Student) person2;
        System.out.println(student2.name);
        System.out.println(student2.age);
        
        // 父类对象名 调用的就是  父类的属性
        // 子类的对象名 调用的就是 子类的属性
        
        /**
         *  父类的 属性和 子类属性同名 . 父类调用父类的
         *  子类重写了  弗雷德分昂发         父类对象调用的是子类的方法
         */
    }
}

Student类

package com.qf.demo6;

public class Student extends Person{

    String name = "zzz";
    
    int age = 1;
    
    String  sex= "女";
    
    @Override
    public void eat() {
        System.out.println("学生吃肉");
        System.out.println(name);
        System.out.println(super.name);
        System.out.println(super.age);
    }
    public void eat1() {
        System.out.println("学生dd吃肉");
        
    }
}

Person类

package com.qf.demo6;
public class Person {
    String name="abc";
    int age= 9;
    public void eat(){
        System.out.println(name);
        System.out.println("吃");
    }
}

相关文章

  • 父类属性和子类属性同名

    上转型中: 如果父类中的属性和子类的属性同名的时候, 父类对象认为认为子类的属性是特有的 , 父类定义的对象只...

  • 父类属性和子类属性同名

    上转型中: 1. 如果父类中的属性和子类的属性同名的时候, 父类对象认为认为子类的属性是特有的 , 父类定义的对象...

  • Java——继承的理解

    1.子类可以调用父类的属性和方法(private修饰的不可以调用),当子类和父类有同名的属性时,通过用this.属...

  • static final 修饰的属性和函数在子类中继承与访问

    父类: 子类 结果: 要是在子类中加入同名的属性: 那么结果: 并且 总结: 属性: 关于继承:static和st...

  • 属性的隐藏 方法重载 方法重写(覆盖)

    概念 隐藏:父类和子类拥有相同名字的属性或者方法时,父类的同名的属性或者方法形式上不见了,实际是还是存在的 方法隐...

  • iOS子类属性替换父类属性

    父类扩展类中声明了属性A。子类在扩展类中声明了属性B。且A,B同名。先在子类中self.B初始化赋值。则在父类中的...

  • ES5、ES6继承

    ES5、ES6继承方式 继承的目标: 父类公有属性和方法为子类公有属性和方法父类私有属性和方法为子类私有属性和方法...

  • super关键字

    /* super:可以用来修饰属性、方法、构造器 1)当子类与父类中有同名的属性时,可以通过"super.此属性"...

  • Java三大特性之继承

    子类拥有父类除构造器外的非private的属性和方法; 子类可以拥有自己属性和方法,即子类可以对父类进行扩展; 类...

  • Swift之属性重写

    引入 属性继承:子类可以继承父类的属性,包括存储属性、计算属性和类型属性,还可以继承父类的属性观察器。属性重写需要...

网友评论

      本文标题:父类属性和子类属性同名

      本文链接:https://www.haomeiwen.com/subject/moqwlxtx.html