2022-10-19日学习问题总结:
一,Student.java中getClass被占用
似乎和object以及反射有关
java中getClass()方法简介
java中的getClass()方法的用法
java的getClass()函数
二,super
由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。
super 关键字的功能:
1,在子类的构造方法中显式的调用父类构造方法
2,访问父类的成员方法和变量。
super( ) 必须是在子类构造方法的方法体的第一行。
public class Flower{
public void showInfo()
{
}
}
public class Rose extends Flower {
public void showInfo() {
super.showInfo();
System.out.println("大理");
}
三,定义USB接口,两个方法start,stop。
两个子类:Flash和Print,重写两个方法,方法中随便输出两句话。
定义计算机类Computer,有一个plugin方法,有一个USB类型的参数,用来调用start和stop。
在主方法中实例化Computer类,调用plugin方法,分别传递Flash和Print的对象,经过向上转型,完成功能。
USB类
package com.demo3;
public interface USB {
public abstract void start();
public abstract void stop();
}
Flash和Print类
package com.demo3;
public class Flash implements USB{
@Override
public void start() {
// TODO Auto-generated method stub
System.out.println("这是Flash类");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("这是Flash类");
}
public static void main(String[] args) {
Flash f = new Flash();
f.start();
f.stop();
}
}
package com.demo3;
public class Print implements USB{
@Override
public void start() {
System.out.println("这是Print类");
}
@Override
public void stop() {
System.out.println("这是Print类");
}
public static void main(String[] args) {
Print q = new Print();
q.start();
q.stop();
}
}
Computer类
public class Computer {
private void plugin(USB p) {
p.start();
p.stop();
}
public static void main(String[] args) {
Computer c = new Computer();
c.plugin(new Flash());
c.plugin(new Print());
//
// USB Flash
// Flash.start();
// Flash.stop();
//
// USB Print = new Print();
// Print.start();
// Print.stop();
//
}
}