抽象类与借口的实际应用

<strong><span style="font-family:SimHei;font-size:14px;color:#ff0000;">在java中,使用抽象类就好像定义一个模板。</span></strong>
<strong><span style="font-family:SimHei;font-size:14px;color:#ff0000;">所以,永远不要去继承一个已经实现好的类。</span></strong>
<strong><span style="font-family:SimHei;font-size:14px;color:#ff0000;">使用向下转型时,最好先用 instanceof 关键字进行验证再使用,以免发生 ClassCastException 。</span></strong>


abstract class Person{
	private String name ;		// 定义name属性
	private int age ;			// 定义age属性
	public Person(String name,int age){
		this.name = name ;
		this.age = age ;
	}
	public String getName(){
		return this.name ;
	}
	public int getAge(){
		return this.age ;
	}
	public void say(){		// 人说话是一个具体的功能
		System.out.println(this.getContent()) ;	// 输出内容
	}
	public abstract String getContent() ;	// 说话的内容由子类决定
};
class Student extends Person{
	private float score ;
	public Student(String name,int age,float score){
		super(name,age) ;	// 调用父类中的构造方法
		this.score = score ;
	}
	public String getContent(){
		return	"学生信息 --> 姓名:" + super.getName() + 
				";年龄:" + super.getAge() + 
				";成绩:" + this.score ;
	}
};
class Worker extends Person{
	private float salary ;
	public Worker(String name,int age,float salary){
		super(name,age) ;	// 调用父类中的构造方法
		this.salary = salary ;
	}
	public String getContent(){
		return	"工人信息 --> 姓名:" + super.getName() + 
				";年龄:" + super.getAge() + 
				";工资:" + this.salary ;
	}
};
public class AbstractCaseDemo02{
	public static void main(String args[]){
		Person per1 = null ;	// 声明Person对象
		Person per2 = null ;	// 声明Person对象
		per1 = new Student("张三",20,99.0f) ;	// 学生是一个人
		per2 = new Worker("李四",30,3000.0f) ;	// 工人是一个人
		per1.say() ;	// 学生说学生的话
		per2.say() ;	// 工人说工人的话
	}
};


<span style="font-size:14px;color:#ff0000;">
</span>
<span style="font-size:18px;color:#ff0000;">在java中,借口相当于一个标准</span>
<span style="font-size:18px;color:#ff0000;">继续了接口就以为着要把接口中标准的东西实现。</span>
<span style="font-size:18px;color:#ff0000;">关于接口:</span>
<span style="font-size:18px;color:#ff0000;">1.接口是一个特殊的类,只包含全局常量和抽象方法。</span>
<span style="font-size:18px;color:#ff0000;">2.一个类只能继承一个类,却能实现多个接口。</span>
<span style="font-size:18px;color:#ff0000;">3.一个接口可以继承多个接口,以实现接口的多继承.</span>
<span style="font-size:18px;color:#ff0000;">4.接口和抽象类一样,必须依靠子类。</span>
<span style="font-size:18px;color:#ff0000;">5.一个抽象类可以实现多个接口,但接口不能继承抽象类</span>
<span style="font-size:18px;color:#ff0000;">
</span>
<span style="font-size:18px;"></span><pre name="code" class="java">interface USB{		// 定义了USB接口
	public void start() ;	// USB设备开始工作
	public void stop() ;	// USB设备结束工作
}
class Computer{
	public static void plugin(USB 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 InterfaceCaseDemo02{
	public static void main(String args[]){
		Computer.plugin(new Flash()) ;
		Computer.plugin(new Print()) ;
	}
};


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值