package duotai;
class Customer{
@SuppressWarnings ( "unused" )
private String account;
@SuppressWarnings ( "unused" )
private String password;
//有两个函数名称一样,但是系统可以接受,这叫做函数重载(静态多态性)
//一个函数呈现为多种状态,系统能够根据参数来决定调用谁
//三种情况:参数个数不同,参数个数相同类型不同,个数类型相同出现的顺序不同
//静态是指:虽然函数名只有一个,但是要写代码要写多个
public Customer()
{
System.out.println("构造函数1" );
}
public Customer(String account, String password) {
System.out.println("构造函数2" );
this .account=account;
this .password=password;
}
}
public class CustomerTest {
public static void main(String[] args) {
@SuppressWarnings ( "unused" )
Customer cus1 = new Customer(); //调用构造函数
@SuppressWarnings ( "unused" )
Customer cus2 = new Customer( "3213" , "1213" ); //调用构造函数
}
}
package duotai;
//模块1调用一个对话框,让对话框显示出来
class Module1 {
private Dialog dialog;
public Module1(Dialog dialog) {
this .dialog = dialog;
}
public void callDialog(){
dialog.show();
}
}
abstract class Dialog{
public abstract void show();
}
class Dialog1 extends Dialog {
public void show() {
System.out.println("对话框1显示" );
}
}
//客户对Dialog1不满意想自己开发一个Dialog2,被Module1调用,不能改变Module1原代码
class Dialog2 extends Dialog{
public void show() {
System.out.println("对话框2显示" );
}
}
public class DaliogTest {
public static void main(String[] args) {
Dialog1 dia = new Dialog1();
Module1 mod1 = new Module1(dia);
mod1.callDialog();
}
}
package duotai;
//动态多态性一般在继承时使用
abstract class Person{
public abstract void printInfo();
}
class Student extends Person{
public void printInfo() {
System.out.println("学生打印" );
}
}
class Teacher extends Person{
public void printInfo() {
System.out.println("老师打印" );
}
}
public class StudentTest {
/* public static void print(Student stu) {
stu.printInfo();
}
public static void print(Teacher tea) {
tea.printInfo();
}*/
public static void print(Person p) { //父类的引用可以指向子类对象
p.printInfo();
}
public static void main(String[] args) {
print(new Student());
}
}
package fanshe;
public class Customer {
private String account;
private String password;
public Customer() {
System.out.println("构造函数1" );
}
public Customer(String account, String password) {
System.out.println("构造函数2" );
this .account = account;
this .password = password;
}
public void printInfo() {
System.out.println("账号:" + account + "密码" + password);
}
}
package fanshe;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class Test1 {
@SuppressWarnings ( "unchecked" )
public