通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值

package com.Summer_0426.cn;

/**
 * @author Summer
 * 通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值
 *
 */
public class Test01 {

    public static void main(String[] args) {
        JavaTeacher guoxiang = new JavaTeacher("郭襄");//子类实例化,并传入参数
        guoxiang.giveLesson();//输出结果,讲Java课
    }

}

class Teacher{
    private String name;
    public Teacher(String name) {//父类构造方法将传入的name赋值给本类name
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void giveLesson() {
        System.out.println("讲数学课");
    }
}

class JavaTeacher extends Teacher{
    private String tatoo;
    public JavaTeacher(String name){//子类通过super()调用父类的构造方法
        super(name);
    }
    public void sing(){
        System.out.println("唱歌");
    }
    public void giveLesson() {
        System.out.println(getName()+"讲Java课"+"还有一个纹身"+tatoo);
    }
}

原文地址:https://www.cnblogs.com/summerdata/p/10776377.html

时间: 2024-12-28 21:12:22

通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值的相关文章

c++与java中子类中调用父类成员的方法

1 java中: 2 import java.util.Scanner; 3 public class ClassTest{ 4 public static void main(String args[]){ 5 child ch=new child(2); 6 parent p=ch; 7 p.print(); 8 //p.print2();//调用错误,父类中没有改成员方法,该方法只属于子类! 9 } 10 } 11 12 class parent{ 13 int xx; 14 parent

子类继承父类时,子类与父类有同名变量,当使用子类对象调用父类方法使用同名变量,这个变量是子类的,还是父类的? (改)

1 public class Test4 { 2 public static void main(String[] args){ 3 Son son = new Son(); 4 son.minusOne(); 5 System.out.println(son.testValue); 6 System.out.println(son.getSuperTestValue()); 7 son.plusOne(); 8 System.out.println(son.testValue); 9 Syst

父类指针可以直接指向子类对象,父类引用可以直接引用子类对象

1 #include<iostream> 2 #include<string> 3 using namespace std; 4 class parent{ 5 public: 6 int mi; 7 void add(int v){ 8 mi += v; 9 } 10 void add(int a,int b){ 11 mi += (a+b); 12 } 13 }; 14 class child:public parent{ 15 public: 16 int mv; 17 vo

在C++中子类继承和调用父类的构造函数方法

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

继承实现的原理、子类中调用父类的方法、封装

一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--->A--->E--->B--->C. class E: def test(self): print('from E') class A(E): def test(self): print('from A') class B: def test(self): print('from B'

Day17:继承实现的原理、子类中调用父类的方法、封装

一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--->A--->E--->B--->C. class E: def test(self): print('from E') class A(E): def test(self): print('from A') class B: def test(self): print('from B'

父类中的方法被覆盖以及子类调用父类覆盖的方法

覆盖 override 覆盖是指在有继承关系的类中,子类中实现了与基类同名的方法,在子类的实例调用该方法时,实际调用的是 子类中的覆盖版本,这种现象叫做覆盖 调用super 函数的两个方法: 1.super(cls, obj) 返回绑定超类的实例(要求obj必须是cls类型的实例) 2.super() 返回绑定超类的实例,等同于: super(__class__, 实例方法的第一个参数), 必须在方法内调用 作用: 可以用super() 返回的实例间接调用其父类的覆盖方法 class A: de

#python#子类调用父类函数的方法

Python中的子类中的__init__()函数会覆盖父类的函数,一些情况往往需要在子类里调用父类函数. 如下例程里,???处是需要调用父类函数的地方,接下来结合例程具体介绍. 1 1 # -*- coding:utf-8 -*- 2 2 class Student: 3 3 def __init__(self,name): 4 4 self.name=name 5 5 def ps(self): 6 6 print('I am %s'%self.name) 7 7 8 8 class Scor

js内置对象Math的属性和方法

属性: constructor 所建立对象的函数参考 prototype 能够为对象加入的属性和方法 E 欧拉常量,自然对数的底(约等于2.718) LN2 2的自然对数(约等于0.693) LN10 10的自然对数(约等于2.302) LOG2E 以2为底的e的对数.(约等于1.442) LOG10E 以10为底的e的对数(约等于0.434) PI ∏的值(约等于3.14159) SQRT1_2 1/2(0.5)的平方根(即l除以2的平方根,约等于o.707) SQRT2 2的平方根(约等于1