南邮java实验二类继承

合集下载

java子类继承的规则

java子类继承的规则

java子类继承的规则Java是一门面向对象的编程语言,其中的继承是一个重要的概念。

子类继承了父类的属性和方法,可以进行扩展和重写,使得代码的复用性和可维护性都得到了提高。

本文将详细介绍Java子类继承的规则,包括继承的语法和语义,以及一些常见的注意事项。

一、语法Java中,使用关键字extends来实现类之间的继承关系。

子类继承父类的语法如下:javaclass SubClass extends SuperClass {子类的成员变量和成员方法}其中,SubClass是子类的类名,SuperClass是父类的类名。

二、继承的语义1. 子类继承了父类的非私有成员(属性和方法),包括无参构造方法。

子类对象可以直接访问从父类继承而来的属性和方法,而无需重新定义。

2. 子类可以通过继承来扩展父类的功能。

子类可以新增自己特有的属性和方法,从而实现对父类功能的扩展。

3. 子类可以重写从父类继承而来的方法。

子类可以重新定义与父类方法名相同的方法,从而改变方法的行为,这就是方法的重写。

重写的方法在子类中具有相同的方法名、参数列表和返回类型。

三、构造方法的继承1. 子类继承了父类的构造方法。

子类可以通过super关键字来调用父类的构造方法。

在子类的构造方法中使用super关键字,可以选择调用父类的显式构造方法或者默认构造方法。

2. 如果子类的构造方法没有显示的调用父类的构造方法,则默认调用父类的无参构造方法。

如果父类没有提供无参构造方法,并且子类的构造方法没有显示调用其他父类构造方法,则编译器将会报错。

这是由于子类的构造方法必须先调用父类的构造方法,再执行自己的内容。

3. 子类可以通过super关键字调用父类的特定构造方法。

子类在构造方法中使用super关键字时,可以指定要调用的父类构造方法的参数列表。

这样就可以实现在子类中初始化父类的特定值。

四、继承的限制1. 子类只能继承一个父类(单继承)。

每个类只能有一个直接父类,即使Java中存在多层继承关系,只有最近的那一个父类会被子类继承。

java继承ppt课件

java继承ppt课件
代码重用
通过继承,子类可以重用父类的代码,避 免了重复编写相同的功能,提高了代码的
复用性。
组织代码结构
通过合理的继承层次结构,可以清晰地表 达类之间的层次关系和依赖关系,使代码
结构更加清晰和易于维护。
多态性
继承是实现多态的重要手段,通过继承, 子类可以覆盖父类的方法,实现不同的行 为,增强了程序的灵活性和可扩展性。
如果父类成员没有访问修饰符 ,则默认为包级别访问,子类
只能在该包内访问。
继承的继承方式
单继承
一个子类只能继承一个父类。
实现多接口
一个类可以实现多个接口,实现多接口可以实现多个方法的重写 。
接口继承
一个接口可以继承另一个接口,子接口继承父接口的方法。
03 Java继承的实现
父类的构造方法
01
父类的构造方法在子类中默认被继承,子类可以直 接使用父类的构造方法来初始化父类的属性。
02
如果子类没有显式地定义构造方法,则编译器会自 动调用父类的无参构造方法。
03
如果父类没有定义无参构造方法,子类必须显式地 调用父类的有参构造方法。
子类的构造方法
1
子类的构造方法可以显式地调用父类的构造方法 ,使用super关键字指定要调用的父类构造方法 。
2
子类的构造方法可以同时执行自己的初始化代码 。
3
子类的构造方法可以定义自己的属性和方法,以 实现更具体的功能。
子类对父类方法的覆盖
子类可以定义与父类同名 的方法,以覆盖父类的方 法。
子类可以通过@Override 注解来表明自己覆盖了父 类的方法,以提高代码的 可读性。
ABCD
当子类对象调用该方法时 ,将执行子类中的方法, 而不是父类中的方法。

java实验报告——继承与接口

java实验报告——继承与接口

System.out.print('\t'+"平均分");
System.out.println('\t'+"成绩等级");
for(int i=0; i<pg.length;i++) {
System.out.print(pg[i].Name); System.out.print('\t'+pg[i].Stu_type); System.out.print('\t'+String.valueOf(pg[i].C_score)); System.out.print('\t'+String.valueOf(pg[i].English_score)); System.out.print('\t'+String.valueOf(pg[i].Java_score)); System.out.print('\t'+String.valueOf(pg[i].score)); System.out.println('\t'+pg[i].sco_Level); } System.out.println(); } }
String Name=""; String Stu_type=""; int C_score; int English_score; int Java_score; int score; // String sco_Level=""; Sco_Level sco_Level;
public Student(String name,String stu_type,int sco1,int sco2,int sco3) {

Java继承与接口实验报告

Java继承与接口实验报告

一、实验目的:1.掌握类的继承性;2.掌握Java的多态性;二、实验内容:1复数类的加减运算能够接收不同类型的参数既可以实现复数与实数的加减、复数与复数的加减运算。

2.习题5.93.习题5.10import java.util.Scanner;class A{int f(int a,int c){int m=a+c;return m;}int g(int b,int d){int n=b+d;return n;}int F(int a,int c){int m=a-c;return m;}int G(int b,int d){int n=b-d;return n;}}class B extends A{double f(double a,double c){double m=a+c;return m;}double g(double b,double d){double n=b+d;return n;}double F(double a,double c){double m=a-c;return m;}double G(double b,double d){double n=b-d;return n;}}public class fushu_1{public static void main(String args[]){B b=new B();System.out.println("选择int型请按1,选择double型请按2:");Scanner reader=new Scanner(System.in);int x=reader.nextInt();if(1==x){System.out.println("请输入两数据的实部或一个实部一个整数:");int p=reader.nextInt();int q=reader.nextInt();System.out.println("请输入两数据的虚部若为整数则输入0:");int j=reader.nextInt();int k=reader.nextInt();if(0!=k)System.out.println("你输入的数分别为:"+p+"+"+j+"i"+" "+q+"+"+k+"i");System.out.println("你输入的数分别为:"+p+"+"+j+" "+q);System.out.println("和为:"+b.f(p,q)+"+"+b.g(j,k)+"i");System.out.println("差为:"+b.F(p,q)+"-"+b.G(j,k)+"i");}if(2==x){System.out.println("请输入两数据的实部或一个实部一个整数:");double p=reader.nextDouble();double q=reader.nextDouble();System.out.println("请输入两数据的虚部若为整数则输入0:");double j=reader.nextDouble();double k=reader.nextDouble();if(0!=k)System.out.println("你输入的数分别为:"+p+"+"+j+"i"+" "+q+"+"+k+"i");if(0==k)System.out.println("你输入的数分别为:"+p+"+"+j+”i”+" "+q);System.out.println("和为:"+b.f(p,q)+"+"+b.g(j,k)+"i");System.out.println("差为:"+b.F(p,q)+"-"+b.G(j,k)+"i");}}}运行结果为:5.9 class A{char ch='a';char ch1='z';int m=(int)ch;int n=(int)ch1;void f(){for(int i=m;i<=n;i++){char ch2=(char)i;System.out.print(ch2+" ");}}}class B extends A{char GL='α';char GL1='ω';int p=(int)GL;int q=(int)GL1;void g(){for(int j=p;j<=q;j++){char GL2=(char)j;System.out.print(GL2+" ");}}}public class file5_9{public static void main(String args[]){B a=new B();System.out.println("英文字母为:");a.f();System.out.println();System.out.println("希腊字母为:");a.g();System.out.println();}}运行结果:5.10 import java.util.Scanner;class A{public int f(int a,int b){int m=0;for(int i=1;i<=a;i++){if(0==a%i&&0==b%i)m=i;}return m;}}class B extends A{public int f(int a,int b){int n=super.f(a,b);return a*b/n;}}//import java.util.Scanner;public class file5_10{public static void main(String args[]){A a=new A();B b=new B();Scanner reader=new Scanner(System.in);System.out .println("******注意输入的p和q不能小于或等于0******\n");System.out.println("请输入第一个数字p并按回车键");int p=reader.nextInt();while(p<=0){System.out.println("p不能小于或等于0,请从新输入:");p=reader.nextInt();}System.out.println("请输入第二个数字q并按回车键");int q=reader.nextInt();while(q<=0){System.out.println("q不能小于或等于0,请从新输入:");q=reader.nextInt();}//int p=5;//int q=6;System.out.println(p+"和"+q+"的最小公倍数为:");System.out.println(b.f(p,q));System.out.println(p+"和"+q+"的最大公约数为:"+"\n"+a.f(p,q));}}运行结果:。

Java实验报告继承、多态、接口和异常处理

Java实验报告继承、多态、接口和异常处理

Java实验报告继承、多态、接⼝和异常处理实验5 继承、多态、接⼝和异常处理⼀、实验⽬的1、掌握Java的类和对象的声明和使⽤⽅法;2、掌握Java的类的继承和实现⽅法;3、掌握多态性在类的继承中的运⽤;4、掌握接⼝的定义与使⽤;5、掌握基本异常的处理机制;6、熟悉try语句与catch语句的搭配使⽤;7、了解有异常处理与没有异常处理的差别;8、多重catch语句的使⽤;9、使⽤Throws声明异常和Throw抛出异常。

⼆、实验环境1、PC微机;2、DOS操作系统或 Windows 操作系统;3、Java sdk程序开发环境、eclipse集成环境。

三、实验内容1. 设计三个类,分别是学⽣类Student,本科⽣类UnderGraduate,研究⽣类Postjgraduate,其中Student类是⼀个抽象类,它包含学⽣的基本信息如姓名、所学课程、课程成绩等,⽽Undergraduate类和Postgraduate类都是Student类的⼦类,这两个类计算课程成绩等级的⽅法有所不同,如下表所⽰。

假设某班级⾥既有研究⽣⼜有本科⽣,编写程序统计出全班学⽣2. 和Mobilephone具体实现,并设计⼀个应⽤程序类来使⽤这些类。

3.要求设计⼀个GUI图形窗⼝程序,该程序让⽤户输⼊⼀个星期中的任意⼀天的数字1-7,然后输出该数字所对应的是星期⼏。

四、实验步骤实验内容⼀1.建⽴package experiment5_1,其最终⽬录结构如下:2.建⽴Student类:package experiment5_1;public abstract class Student {final static int CourseNo = 3;String name;String type;int[] courses;String courseGrade;public Student(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name; courses = new int[CourseNo];courseGrade = "" ;}public abstract void calculateGrade();public String getName( ) {return name;}public String getType( ) {return type ;}public String getCourseGrade( ) {return courseGrade;}public int getCourseScore(int courseNumber) {return courses[courseNumber];}public void setName(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name;}public void setType(String type) {this.type = type;}public void setCourseScore(int courseNumber, int courseScore) { //按课程索引号设置课程成绩this.courses[courseNumber] = courseScore ;}}3.建⽴外部类(1)研究⽣类Postjgraduatepackage experiment5_1;public class postgraduate extends Student {public postgraduate(String name) {super(name);type = "研究⽣";}public void calculateGrade() {// TODO Auto-generated method stubint total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += courses[i];};average = total / CourseNo;if (average>=90&&average<100) courseGrade = "优秀"; else if (average>=80&&average<90) courseGrade = "良好"; else if (average>=70&&average<80) courseGrade = "⼀般"; else if (average>=60&&average<70) courseGrade = "及格"; else courseGrade = "不及格";}}(2)本科⽣类UnderGraduatepackage experiment5_1;public class undergraduate extends Student {public undergraduate(String name ) {super(name);type = "本科⽣";}public void calculateGrade() {int total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += getCourseScore(i) ;};average = total / CourseNo;if (average>=80&&average<100) courseGrade = "优秀"; else if (average>=70&&average<80) courseGrade = "良好"; else if (average>=60&&average<70) courseGrade = "⼀般"; else if (average>=50&&average<60) courseGrade = "及格"; else courseGrade = "不及格";}}4.编写代码测试函数package experiment5_1;public class polymorphism {public static void main(String[] args) {Student[] students = new Student[5];students[0] = new undergraduate("陈建平");students[1] = new undergraduate("鲁向东");students[2] = new postgraduate("匡晓华");students[3] = new undergraduate("周丽娜");students[4] = new postgraduate("梁欣欣");for (int i=0; i<5 ;i++) {students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for (int i=0; i<5 ;i++) {students[i].calculateGrade();}System.out.println("姓名" + " 类型" +" 成绩");System.out.println("-----------------------");for (int i=0; i<5 ;i++) {System.out.println(students[i].getName( )+" "+students[i].getType( )+" "+students[i].getCourseGrade( ));}}}实验内容⼆1.建⽴package experiment5_2,其最终⽬录结构如下:2.写接⼝Soundable代码:package experiment5_2;public interface Soundable {public void increaseV olume( );public void decreaseV olume( );public void stopSound( );public void playSound( );}3.创建三个类Radio、Walkman和Mobilephone具体实现,分别添加代码:// Mobilephone类package experiment5_2;class Mobilephone implements Soundable{public void increaseV olume( ) {System.out.println("增⼤⼿机⾳量");}public void decreaseV olume( ) {System.out.println("减⼩⼿机⾳量");}public void stopSound( ) {System.out.println("关闭⼿机");}public void playSound( ) {System.out.println("⼿机发出来电铃声");}}// Walkman类package experiment5_2;class Walkman implements Soundable { public void increaseV olume( ) { System.out.println("增⼤随声听⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩随声听⾳量"); }public void stopSound( ) {System.out.println("关闭随声听");}public void playSound( ) {System.out.println("随声听发出⾳乐"); }}// Radio类package experiment5_2;class Radio implements Soundable{ public void increaseV olume( ) { System.out.println("增⼤收⾳机⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩收⾳机⾳量"); }public void stopSound( ) {System.out.println("关闭收⾳机");}public void playSound( ) {System.out.println("收⾳机播放⼴播"); }}4.创建people类及编写测试代码://People类package experiment5_2;class People {public void listen(Soundable s) {s.playSound( );}}//测试代码package experiment5_2;import java.util.Scanner;public class InterfaceTest {public static void main(String[] args) {int i;People sportsman = new People( );Scanner scanner = new Scanner(System.in);Soundable[] soundDevice = new Soundable[3];//往声⾳设备数组中放⼊能发声的设备soundDevice[0] = new Radio( );soundDevice[1] = new Walkman( );soundDevice[2] = new Mobilephone();System.out.println("你想听什么? 请输⼊选择:0-收⾳机1-随声听2-⼿机");i = scanner.nextInt( );//开始听声⾳sportsman.listen(soundDevice[i]);soundDevice[i].increaseV olume( );soundDevice[i].stopSound();scanner.close();}}实验内容三1.建⽴package experiment5_3,其最终⽬录结构如下package experiment5_3;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DateTransf extends JFrame implements KeyListener{/****/private static final long serialVersionUID = 1L;private static DateTransf frm;private static JTextField txt;private static JTextField data;DateTransf() {setTitle("数字与星期转换");setLocation(700, 300);setSize(400,130);}public static void main(String[] args) {frm = new DateTransf();frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setLayout(new GridLayout(2,2));txt = new JTextField(12);data = new JTextField(12);JLabel lable1 = new JLabel("输⼊数字:");JLabel lable2 = new JLabel("星期⼏:");frm.add(lable1);txt.addKeyListener(frm);frm.add(txt);frm.add(lable2);frm.add(data);frm.setVisible(true);}public void keyPressed(KeyEvent e) {if (e.getSource() == txt) {if (e.getKeyCode() == KeyEvent.VK_ENTER) // 判断按下的键是否是回车键{try {int number = Integer.parseInt(txt.getText());switch (number) {case 1:data.setText("Mon");break;case 2:data.setText("Tue");break;case 3:data.setText("Wen");break;case 4:data.setText("Thu");break;case 5:data.setText("Fri");break;case 6:data.setText("Sat");break;case 7:data.setText("Sun");break;default:JOptionPane.showMessageDialog(null, "您输⼊的数字不是1~7","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMATION_MESSAGE); break;}}catch (Exception e1) {// TODO: handle exceptionJOptionPane.showMessageDialog(null, "您输⼊的不是整数","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMA TION_MESSAGE); }}}}public void keyReleased(KeyEvent e) {}public void keyTyped(KeyEvent e) {}}2.编译运⾏五、实验结果●实验内容⼀结果:●实验内容⼆结果:●实验内容三结果:六、实验⼩结1.这次实验的内容⽐较多,需要掌握Java的类和对象的声明和使⽤⽅法、Java的类的继承和实现⽅法、多态性在类的继承中的运⽤、接⼝的定义与使⽤、基本异常的处理机制、try语句与catch语句的搭配使⽤等等;2. 在实验过程中,重点是要区分好实例和类,灵活掌握类的调⽤。

JAVA_4_2类的继承和多态

JAVA_4_2类的继承和多态

Java中任何一个子类的实例都可作为父类的实例 使用,可以调用父类具有的方法。
11
单继承
Java是单继承的,即只能从一个类继承, extends后类名只能有一个。 单继承的优点: •代码更可靠 •可以用接口弥补
用一个类实现多个接口,达到多继承效果。
12
覆盖父类的方法
子类可以改变从父类继承的行为。 覆盖方法必须和被覆盖方法具有相同的方法名 称、参数列表和返回值类型。 如果在子类中想调用父类中的那个被覆盖的方 法,我们可以用super.方法的格式 。 覆盖方法时,不能使用比父类中被覆盖的方法 更严格的访问权限 。
缺省是不带参数的构造方法。 如果需要调用特殊的父类构造方法,则需在 子类构造方法中第一行通过super( … )调用。
class Employee{ ... public Employee( String n){ name=n; } } class Manager entends Emplyee{ public Manager( String s,String d){ super(s); ... } }
e.getDetails();
21
Super关键字
Super指向该关键字所在类的父类。
Public class Empolyee { private String name ; private int salary; public String getDetails( ){ return “Name: ”+name+“\nSalary:”+salary; } } public class Manager extends Empolyee { private String department ; public String getDetails( ){ return super.getDetailes( )+„\nDepartment: “+ department; } }

继承的含义实验报告

一、实验目的1. 理解继承的概念及其在面向对象编程中的重要性;2. 掌握Java中继承的实现方式;3. 熟悉继承中成员的访问权限;4. 掌握子类与父类之间的关系。

二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse三、实验内容1. 定义一个父类Person,包含以下属性和方法:- 属性:name(姓名)、age(年龄)- 方法:setName(String name)、getName(String name)、setAge(int age)、getAge(int age)、toString()2. 定义一个子类Student,继承自Person类,包含以下属性和方法:- 属性:id(学号)- 方法:setId(int id)、getId(int id)3. 编写main方法,创建Person和Student对象,并输出对象信息。

4. 定义一个父类Animal,包含以下属性和方法:- 属性:name(名字)、age(年龄)- 方法:setName(String name)、getName(String name)、setAge(int age)、getAge(int age)、toString()5. 定义一个子类Dog,继承自Animal类,包含以下属性和方法:- 属性:breed(品种)- 方法:setBreed(String breed)、getBreed(String breed)6. 编写main方法,创建Animal和Dog对象,并输出对象信息。

7. 定义一个父类Vehicle,包含以下属性和方法:- 属性:brand(品牌)、model(型号)- 方法:setBrand(String brand)、getBrand(String brand)、setModel(String model)、getModel(String model)、toString()8. 定义一个子类Car,继承自Vehicle类,包含以下属性和方法:- 属性:color(颜色)- 方法:setColor(String color)、getColor(String color)9. 编写main方法,创建Vehicle和Car对象,并输出对象信息。

java类继承的方法概括

Java中的类继承是面向对象编程的一个重要特性。

它允许我们创建一个新的类(子类)来继承现有类(父类)的属性和方法。

子类可以继承父类的非私有方法和属性,并且可以添加更多的方法或属性。

此外,子类还可以重写父类的方法以实现不同的行为。

这里是一些关于Java类继承的关键点:1. 定义一个继承的类:在Java中,使用关键字`extends`来定义一个继承的类。

例如,如果我们要创建一个`Animal`类,我们可以这样写:`class Animal { ... }`。

2. 子类继承父类:要创建一个子类,只需使用`extends`关键字并指定要继承的父类。

例如,我们可以创建一个`Dog`类来继承`Animal`类:`class Dog extends Animal { ... }`。

3. 访问修饰符:在Java中,访问修饰符(如`public`, `protected`, `private`)决定了其他类如何访问这个成员。

`public`表示任何类都可以访问,`protected`表示只有同一包中的类或不同包中的子类可以访问,`private`表示只有当前类内部可以访问。

4. 成员变量和方法的覆盖(Overriding):如果子类需要改变从父类继承的某个方法的行为,那么它可以在自己的类中重新定义这个方法。

这就是方法的覆盖。

在子类中重新定义的方法会覆盖父类中的同名方法。

5. 成员变量的隐藏(Hiding):如果子类定义了一个与父类中同名的变量,那么这个变量就会隐藏父类中的变量。

注意,这并不是覆盖,因为子类的变量并没有改变父类变量的行为。

6. 多态(Polymorphism):多态是面向对象编程的一个重要特性,它允许我们使用一个接口来表示不同类型的对象。

例如,我们可以创建一个接口`Animal`,然后让`Dog`和`Cat`类都实现这个接口。

这样,我们就可以用一个`Animal`类型的引用指向一个`Dog`或`Cat`对象,并调用它们的共同方法。

Java2实用教程第4版第5章子类与继承PPT课件

重点和难点
– 重点:类的继承性、上转型对象和多态技术 – 难点:理解上转型对象和多态技术的理解和运用
2020/11/24
第2页
LOGO
§5.1 子类与父类
LOGO
➢ 继承是一种由已有的类创建新类的机制。利用继承, 我们可以先创建一个共有属性的一般类,根据该一般
类再创建具有特殊属性的新类,新类继承一般类的状
➢ 所谓子类继承父类的方法就是把继承来的方法作为子类中 的一个方法,就好象它们是在子类中直接定义了一样,可 以被子类中自己定义的任何实例方法调用。
2020/11/24
第6页
§5.2 子类的继承性
例题:子类的继承
class Father { float weight,height;
String head; void speak(String s) { System.out.println(s); } } class Son extends Father { String hand,foot; }
第5页
§5.2 子类的继承性
LOGO
➢ 类可以有两种重要的成员:成员变量和方法。子类的成员 中有一部分是子类自己声明定义的,另一部分是从它的父 类继承的。
➢ 所谓子类继承父类的成员变量就是把继承来的变量作为自 己的一个成员变量,就好象它们是在子类中直接声明一样, 可以被子类中自己定义的任何实例方法操作。
态和行为,并根据需要增加它自己的新的状态和行为。
由继承而得到的类称为子类,被继承的类称为父类 (超类)。
➢ Java不支持多重继承(子类只能有一个父类)。
2020/11/24
第3页
5.1.1 声明子类
LOGO
➢ 使用关键字extends来定义一个类的子类,格式如下: class 子类名 extends 父类名 { … }

java继承知识点总结

java继承知识点总结在Java编程语言中,继承是一种重要的面向对象编程的概念。

通过继承,一个类可以继承另一个类的属性和方法。

这使得代码可以更加灵活和可复用。

在这篇文章中,我们将介绍Java中继承的基本概念、语法和用法。

一、继承的基本概念继承是面向对象编程的一个重要特性。

它允许一个类(子类)继承另一个类(父类)的属性和方法。

通过继承,子类可以重用父类的成员变量和方法,同时也可以添加自己的新成员变量和方法。

这使得代码更加灵活和可维护。

在Java中,继承是通过关键字 extends 来实现的。

当一个类继承另一个类时,子类将继承父类的成员变量和方法,同时也可以重写父类的方法。

继承是Java中面向对象编程的基石,通常用于实现代码的重用和抽象。

二、继承的语法在Java中,通过关键字 extends 来实现继承。

例如:```javaclass Animal {String name;public void eat() {System.out.println("Animal is eating");}}class Dog extends Animal {public void bark() {System.out.println("Dog is barking");}}```在上面的例子中,类 Dog 继承了类 Animal。

这意味着,Dog 类将拥有 Animal 类的成员变量和方法。

同时,Dog 类也可以定义自己的成员变量和方法。

三、继承的特点在Java中,继承具有以下几个特点:1. 子类可以继承父类的成员变量和方法通过继承,子类可以访问父类的成员变量和方法。

这使得代码更加灵活和可复用。

2. 子类可以重写父类的方法子类可以重写父类的方法,以实现自己的特定逻辑。

这使得继承可以实现多态,使代码更加灵活和可扩展。

3. 子类可以添加自己的成员变量和方法通过继承,子类可以添加自己的成员变量和方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return width;
}
public void setLength(int length) {
this.length = length;
}
public void setWidth(int Width) {
this.width = Width;
}
public int getArea() {
return width * length;
}
}
一开始遇到问题是calendar类型变量ca的值的设置为ca.set(1999,9,9),结果月份是8,后来发现月份是从0-11的。另外发现对ca设置值还有一个麻烦一些的方法:SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
MyRectangle rect = new MyRectangle(6, 5);
System.out.println("length=" + rect.getLength() + ",width=" + rect.getWidth() + ",area=" + rect.getArea());
rect.setLength(9);
2018学年课程名称java程序设计实验名称类继承实验时间2017指导单位计算机学院软件学院软件工程系指导教师肖欣欣学生姓名班级学号b16041309学院系实验名称类继承指导教师肖欣欣实验类型上机实验学时实验时间2017年12月15掌握派生类的定义二实验环境实验设备计算机需安装好jdk和eclipse三实验内容将编译运行成功后代码写入题目空白处1定义一个类myrectangle代表矩形
为矩形定义getLength方法(获得矩形的长度)、getWidth方法(获得矩形的宽度)、
setLength方法(设置矩形的长度)、setWidth方法(设置矩形的宽度)、
getArea方法(求矩形的面积)和toString方法(显示矩形的信息)。
(2)为矩形派生出一个子类MyCuboid代表长方体:
2017年12月15日
一、实验目的
1. 掌握类的定义
2. 掌握对象的创建和使用
3. 掌握类的继承的概念
4. 掌握派生类的定义
二、实验环境(实验设备)
1.每位学生配备计算机一台
2.计算机需安装好JDK和Eclipse
三、实验内容(将编译、运行成功后代码写入题目空白处)
1、
(1)定义一个类MyRectangle代表矩形:
pBirth = birth;
}
public String getName() {
return pName;
}
public String getSex() {
return pSex;
}
public Calendar getBirth() {
return pBirth;
}
public String toString() {
实验报告
( 2017 / 2018学年 第1学期)
课程名称
JAVA程序设计
实验名称
类、继承
实验时间
2017

12

15

指导单位
计算机学院、软件学院
软件工程系
指导教师
肖欣欣
学生姓名
胡君
班级学号
B16041309
学院(系)
计软院
专 业
软件工程
实验名称
类、继承
指导教师
肖欣欣
实验类型
上机
实验学时
2
实验时间
public class Ex2 {
public static void main(String args[]) throws ParseException {
Calendar ca = Calendar.getInstance();
ca.set(1999, 10, 9);
Student stu = new Student("张三", "男", ca, "B17010101", "软件工程");
return pName + "、" + pSex + "、年龄:" + (2017 - pBirth.get(Calendar.YEAR)) + "岁";
}
}
class Student extends People {
private String sNo, sMajor;
public Student(String name, String sex, Calendar birth, String no, String major) {
+ ",area=" + cub.getArea() + ",volume=" + cub.getVolume());
cub.setLength(14);
cub.setWidth(7);
cub.setHeight(18);
System.out.println(cub.toString());
}
}
class MyRectangle {
pName = name;
pSex = sex;
pBirth = birth;
}
public void setName(String name) {
pName = name;
}
public void setSex(String sex) {
pSex = sex;
}
public void setBirth(Calendar birth) {
rect.setWidth(4);
System.out.println(rect.toString());
MyCuboid cub = new MyCuboid(6, 5, 3);
System.out.println("length=" + cub.getLength() + ",width=" + cub.getWidth() + ",height=" + cub.getHeight()
System.out.println(stu.toString());
}
}
class People {
private String pName, pSex;
private Calendar pBirth;
public People(String name, String sex, Calendar birth) {
return sNo;
}
public String getMajor() {
return sMajor;
}
public String toString() {
return sNo + "、" + getName() + "、" + getSex() + "、年龄:" + (2017 - getBirth().get(Calendar.YEAR)) + "岁、" + sMajor;
super(name, sex, birth);
sNo = no;
sMajor = major;
}
public void setNo(String no) {
sNo = no;
}
public void setMajor(String major) {
sMajor = major;
}
public String getNo() {
private int length, width;
public MyRectangle(int length, int width) {
this.length = length;
this.width = width;
}
பைடு நூலகம்public int getLength() {
return length;
}
public int getWidth() {
增加getHeight方法(获取长方体的高度)、setHeight方法(设置长方体的高度)、
getVolumn方法(求长方体的体积),并对getArea方法(求长方体的表面积)
和toString方法(显示长方体的信息)进行重写。
package example1;
public class实验二{
public static void main(String args[]) throws ParseException {
并使用toString方法输出该学生信息。
package example1;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public MyCuboid(int length, int width, int height) {
super(length, width);
this.height = height;
}
public void setHeight(int height) {
this.height = height;
相关文档
最新文档