抽象类,接口,多态的综合运用

来源:互联网 发布:平面设计和美工的区别 编辑:程序博客网 时间:2024/05/21 08:01

1.为抽象类和接口实例化

abstract class A   //定义一个抽象类
{
public abstract void fun();
};
class B extends A
{
public void fun(){
System.out.println("覆写父类中的构造方法:");
}
};
public class AbstractDemo02 
{
public static void main(String args[])
{
A a=new B();   //向上转型为抽象类实例化
a.fun();
}
};

2.为接口实例化

interface class A   //定义一个接口
{
public abstract void fun();
};
class B extends A
{
public void fun(){
System.out.println("覆写父类中的构造方法:");
}
};
public class AbstractDemo03
{
public static void main(String args[])
{
A a=new B();   
a.fun();
}
};

3.抽象类的运用

l类的分析:定义一个人的类,,学生,工人类,人有年龄,名字属性,但是说话内容由学生和工人决定。

abstract class Person
{
private String name;//定义name属性
private int age;//定义age属性
public Person(String name,int age){//通过构造方法实例化
this.name=name;
this.age=age;
}
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public void say(){
System.out.println(this.fun());
}
public abstract String fun();   //定义一个抽象方法,说话内容由子类决定
};
class Worker extends Person
{
private float salary;//定义salary属性
public Worker(String name,int age,float salary){
super(name,age);
this.salary=salary;
}
public String fun(){
return "姓名:"+super.getName()+":年龄:"+super.getAge()+":工资:"+this.salary;
}
};
class Student extends Person
{
private float score;//定义score属性
public Student(String name,int age,float score){
super(name,age);
this.score=score;
}
public String fun(){
return "姓名:"+super.getName()+":年龄:"+super.getAge()+":分数:"+this.score;
}
}
public class ExtendsDemo02
{
public static void main(String args[]){
Person p1=new Student("张三",30,100.0f);//利用对象的多态性向上转型实例化对象
Person p2=new Student("李四",30,3000.0f);
p1.say();
p2.say();
}
};

4.接口的运用

接口实际上就是是一个标准,如果把USB认为一个标准,那么只要实现了USB接口的,就可以连上电脑,开始工作。代码如下

interface USB
{
public void start();
public void stop();
};
class Computer
{
public static void plugin(USB usb){
usb.start();
System.out.println("--------usb------开始工作");
usb.stop();
}
};
class Flash implements USB
{
public void start (){
System.out.println("--------------U盘-----------开始工作");
}
public void stop(){
System.out.println("--------------U盘-----------停止工作");
}
};
class Print implements USB
{
public void start (){
System.out.println("--------------打印机-----------开始工作");
}
public void stop(){
System.out.println("--------------打印机-----------停止工作");
}
};
public class InterfaceDemo04
{
public static void main(String args[]){
Computer.plugin(new Flash());
Computer.plugin(new Print());
}
};


0 0
原创粉丝点击