子类父类

看下面的代码:

package logan.study.learn;

public class Parent {
    private int data;
    public Parent(int d){
        data = d;
    }

}
package logan.study.learn;

public class Child extends Parent {
    String name;
    public Child(String s,int d){
        _____________
        name = s;

    }

}

答案是:

package logan.study.learn;

public class Child extends Parent {
    String name;
    public Child(String s,int d){
        super(d);
        name = s;

    }

}

1.子父类存在同名成员时,子类中默认访问子类的成员,可通过super指定访问父类的成员,格式:super.xx  (注:xx是成员名);

2.创建子类对象时,默认会调用父类的无参构造方法,可通过super指定调用父类其他构造方法,格式:s uper(yy) (注:yy是父类构造方法需要传递的参数)

时间: 2024-10-23 10:03:25

子类父类的相关文章

结合子类父类和LIstView适配器相关设置,初步体验类的多态。

在初级阶段,我们常对listview的适配器都是在一个activity类中全部写满.当你接触项目多了,你会发现大神都把各种适配器放一个包里,要用直接传如相关参数到适配器的构造方法设置ListView.今天做了个简单的demo,对于菜鸟理解多态有帮助.在MainActivity中代码如下 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState)

类型转换,类与类之间的转换,继承关系,继承与静态变量,子类父类重名,多继承,虚基类

 常量的基本类型转换,例如:int num(10.8),这种方式是隐式转换. 通过函数的构造函数实现转换. 类类转换函数,当构造函数不能将类型转换成基本类型时.所以就有了类类转换函数,通过这种方式. 案例: #include <iostream> class fushu { public: //通过加explicit的这种方式避免隐式转换,避免引发歧义 explicit fushu(int num) { x = num; y = num; } void print() { std::cou

创建子类父类,并应用向上转型P188_2

父类代码: 1 public class Father { 2 3 4 private String name;//姓名 5 6 private int age;//年龄 7 8 //吃饭的方法 9 public void eat(){ 10 11 System.out.println("正在吃饭!"); 12 } 13 14 //工作的方法 15 public void work(){ 16 17 System.out.println("正在工作!"); 18 }

总结:子类父类拥有同名的方法时……

示例: public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); parent.printValue(); Child child=new Child(); child.printValue(); parent=child; parent.printValue(); parent.myValue++; parent.printValue(); ((Chil

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

C++子类父类构造函数的关系

在C++中子类继承和调用父类的构造函数方法 构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法. 如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建. 构造原则如下: 1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法. 2. 如果子类定义了构造方法,不论

java 子类父类相互转换

子类转父类 (父类引用指向子类对象) 子类可以转换为父类,如下父类FruitTest与其子类AppleTest class FruitTest { String str = "FruitTest"; public String get() {return str;} public void set(String str) {this.str = str;} } class AppleTest extends FruitTest { String str = "AppleTes

006 子类父类赋值兼容规则

子类和父类的赋值兼容规则 1.同名隐藏(非常重要) 当子类的成员方法(show)和父类的成员方法(show)的名字相同的时候,父类的所有(show)方法,都不能用子类的对象来调用了,这种现象就是同名隐藏. #include <iostream> using namespace std; class Base{ public: Base():d(0){} ~Base(){} void show(){ cout << "Base show" << end

子类-父类构造方法调用问题

当一个类继承了某个类时,在子类的构造方法里,super()必须先被调用:如果你没有写,编译器会自动调用super()方法,即调用了父类的构造方法: 这并不是创建了两个对象,其实只有一个子类Sub对象:之所以需要调用父类的构造方法是因为在父类中,可能存在私有属性需要在其构造方法内初始化: 在Java中,如果一个类没有定义构造方法,编译器会默认插入一个无参数的构造方法:但是如果一个构造方法在父类中已定义,在这种情况,编译器是不会自动插入一个默认的无参构造方法. 要修复这个错误,很简单: 1.在父类手