{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Unit 9 Inheritance\n", "Unit 9 Inheritance\n", "\n", "- toc: true\n", "- layout: post\n", "- description: Unit 9 Inheritance\n", "- categories: [jupyter]\n", "- image: /images/csa.png\n", "- title: Unit 9 Inheritance\n", "- author: Rithwikh Varma\n", "- show_tags: true\n", "- comments: true" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Notes\n", "\n", "The keyword \"Super\" is used to call a subclass.\n", "\n", "Overriding methods (@Override) is used to give different implementations to the method of the superclass\n", "\n", "Subclasses and Superclasses are usually organized into a single root tree caled a hierarchy\n", "\n", "One example includes: the Class leaf extends nature, so leaf is a subclass of nature.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Team score: 0\n", "Team wins: 1\n", "Team all goals: 27\n", "Best player: Unknown\n", "Team score: 0\n", "Team wins: 2\n", "Team all goals: 55\n", "Best player: Cristiano Ronaldo\n", "Team score: 0\n", "Team wins: 2\n", "Team all goals: 129\n", "Best player: Kylian Mbappe\n" ] } ], "source": [ "public class Team {\n", " public int score;\n", " public int wins;\n", " public int all_goals;\n", "\n", " public Team( int score, int wins, int all_goals) {\n", " this.score = score;\n", " this.wins = wins;\n", " this.all_goals = all_goals;\n", " }\n", "\n", " public void score() {\n", " this.score += 1;\n", " }\n", "\n", " public void bestplayer() {\n", " System.out.println(\"Best player: Unknown\");\n", " }\n", "\n", " public void out() {\n", " System.out.println(\"Team score: \" + this.score);\n", " System.out.println(\"Team wins: \" + this.wins);\n", " System.out.println(\"Team all goals: \" + this.all_goals);\n", " bestplayer();\n", " }\n", "\n", "}\n", "\n", "public class Portugal extends Team {\n", " public Portugal(int score, int wins, int all_goals) {\n", " super(score, wins, all_goals);\n", " }\n", "\n", " public void score() {\n", " this.score += 1;\n", " }\n", "\n", " public void bestplayer() {\n", " System.out.println(\"Best player: Cristiano Ronaldo\");\n", " }\n", "}\n", "\n", "public class France extends Team {\n", " public France(int score, int wins, int all_goals) {\n", " super(score, wins, all_goals);\n", " }\n", "\n", " public void score() {\n", " this.score += 1;\n", " }\n", "\n", " public void bestplayer() {\n", " System.out.println(\"Best player: Kylian Mbappe\");\n", " }\n", "}\n", "\n", "Team team = new Team(0, 1, 27);\n", "Team portugal = new Portugal(0, 2, 55);\n", "Team france = new France(0, 2, 129);\n", "\n", "team.out();\n", "portugal.out();\n", "france.out();" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Person (name: aidan, birthday: 2006)\n", "Student (name: jun, birthday: 2005, extracurricular: football, gpa:3.5, grade: 12)\n", "Teacher (name: allie, birthday: 1980, subject: math, tenureYears:10, degree: N/A)\n" ] } ], "source": [ "public class Person {\n", " protected String name;\n", " protected String birthday;\n", " \n", " public Person (String name, String birthday){\n", " this.name = name;\n", " this.birthday = birthday;\n", " }\n", " \n", " public String getName(){\n", " return name;\n", " }\n", "\n", " public int getAge() {\n", " return 2022 - Integer.parseInt(birthday);\n", " }\n", "\n", " @Override\n", " public String toString() {\n", " return \"Person (name: \" + name + \", birthday: \" + birthday + \")\";\n", " }\n", " }\n", " \n", "//Student is a subclass and extends person, the superclass, since students are classified as a person.\n", "\n", " public class Student extends Person {\n", " private int grade;\n", " private double gpa;\n", " private String extracurricular;\n", " \n", " public Student (String name, String birthday, int grade, double gpa, String extracurricular) {\n", " super(name, birthday);\n", " this.grade = grade;\n", " this.gpa = gpa;\n", " this.extracurricular = extracurricular;\n", " }\n", "\n", " // return gpa\n", " public double getGPA() {\n", " return gpa;\n", " }\n", "\n", " public String extracurricular() {\n", " return extracurricular;\n", " }\n", "\n", " // return grade\n", " public int getGrade(){\n", " return grade;\n", " }\n", "\n", " @Override\n", " public String toString() {\n", " return \"Student (name: \" + name + \", birthday: \" + birthday + \", extracurricular: \" + extracurricular + \", gpa:\" + gpa + \", grade: \" + grade + \")\";\n", " }\n", " }\n", "\n", "// The public class teacher is a subclass of person and as such will extend person, the superclass.\n", "\n", " public class Teacher extends Person {\n", " private String subject;\n", " private int tenureYears;\n", " private String degree;\n", " \n", " public Teacher (String name, String birthday, String subject, int tenureYears, String degree) {\n", " super(name, birthday);\n", " this.subject = subject;\n", " this.tenureYears = tenureYears;\n", " this.degree = degree;\n", " }\n", " \n", " // return subject\n", " public String getSubject() {\n", " return subject;\n", " }\n", " \n", " // return yearsOfExperience\n", " public int getTenure() {\n", " return tenureYears;\n", " }\n", " \n", " // return degree\n", " public String getDegree() {\n", " return degree;\n", " }\n", "\n", " @Override\n", " public String toString() {\n", " return \"Teacher (name: \" + name + \", birthday: \" + birthday + \", subject: \" + subject + \", tenureYears:\" + tenureYears + \", degree: \" + degree + \")\";\n", " }\n", " }\n", "\n", "Person aidan = new Person(\"aidan\", \"2006\");\n", "System.out.println(aidan.toString());\n", "Person jun = new Student(\"jun\", \"2005\", 12, 3.5, \"football\");\n", "System.out.println(jun.toString());\n", "Person allie = new Teacher(\"allie\", \"1980\", \"math\", 10, \"N/A\");\n", "System.out.println(allie.toString());" ] } ], "metadata": { "kernelspec": { "display_name": "Java", "language": "java", "name": "java" }, "language_info": { "codemirror_mode": "java", "file_extension": ".jshell", "mimetype": "text/x-java-source", "name": "java", "pygments_lexer": "java", "version": "19.0.1+10-21" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }