java 笔记------instanceof、抽象、接口的应用
来源:互联网 发布:数据库安全防范 编辑:程序博客网 时间:2024/05/17 08:23
instanceof关键字
/**instanceof 关键字*/public class PolymorphismDemo{public static void main(String[] args){Man man = new Man();say(man);Women w = new Women();say(w);}/*public static void say(Man m){m.say();}public static void say(Women w){w.say();}*/public static void say(Person p){p.say();//p.getangry(); 父类必须得有这个方法,子类自己有的,不能被调用//判断p对象是否为Women的实例if(p instanceof Women){Women w = (Women)p;w.getangry();}}}abstract class Person{private String name;public void setName(String name){this.name = name;}public String getName(){return name;}public abstract void say();//抽象方法 }class Man extends Person{public void say(){System.out.println("我是男的,我继承了人这个类");}}class Women extends Person{public void say(){System.out.println("我是女人,我继承了人这个类");}public void getangry(){System.out.println("我是女人,我很生气");}}
父类的设计法则
抽象类应用
import java.util.Random;/**抽象类的应用competition 竞争*/class AbstractDemo {public static void main(String[] args) {School s = new Student("小白");System.out.println("招聘信息现在开始:");s.action();}}abstract class School{//招聘信息public void action(){if(competition()){System.out.println("恭喜你,加入本学校学习");}else{System.out.println("Sorry 回家多练习练习吧");}}//比赛方法public abstract boolean competition();}class Student extends School{private String name;public Student(String name){this.name = name;}public boolean competition(){System.out.println("我是"+name);System.out.println("考试开始,成不成功,听天由命");Random r = new Random();return r.nextBoolean();//返回一个boolean值方法}}
模板方法设计模式(Templete Method):定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤
接口的应用
/**接口的应用*/class InterfaceDemo{public static void main(String[] args){Person p = new Person("小白");p.setIsay(new Man());p.say();p.setIsay(new Women());p.say();}}//把说话的方法抽象为一个接口interface Isay{public void say();}class Women implements Isay{public void say(){System.out.println("我是女人");}}class Man implements Isay{public void say(){System.out.println("我是男人");}}class Person{private String name;private Isay isay;//把接口作为类中的一个属性(组合)public void setIsay(Isay isay){this.isay = isay;}public Person(String name){this.name = name;}public void say(){isay.say();}}
策略设计模式:定义了一系列的算法,将没一种算法封装起来并可以相互替换,策略模式让算法独立于使用它的客户应用而独立变化
oo设计原则:
1、面向接口编程(面向抽象编程)
2、封装变化
3、多用组合,少用继承
0 0
- java 笔记------instanceof、抽象、接口的应用
- java自学笔记之抽象类,接口,对象的多态性,instanceof关键字
- Java接口和抽象类以及接口的意义,instanceof的利用
- 面向对象高级——instanceof关键字的使用以及抽象类与接口的应用
- JAVA接口 ,抽象类的应用
- Java 关键字instanceof的应用
- 【我的Java笔记】抽象类 & 接口
- 面向对象高级续2(instanceof关键字、抽象类和接口的应用、Object类、包装类)
- 【幻化万千戏红尘】qianfengDay09-java基础学习:接口,抽象类,抽象方法,多态,instanceof
- Java 中 抽象类与 接口的应用
- Java面向对象高级--抽象类与接口的应用
- java自学 抽象类和接口的应用
- java中的instanceof关键字的应用
- Java中instanceof关键字的应用
- JAVA中instanceof和getClass的应用
- 09.---抽象类、接口、instanceof、final、Object
- JAVA 基础笔记|抽象类与接口的区别
- Java基础final,抽象类 接口的笔记
- sae的channel服务无法回调http的原因
- ZeroMQ(java)中组件间数据传输(Pipe的实现)
- 关于ZM问到C中int数据范围溢出
- read读取管道
- ZeroMQ(java)中的数据流SessionBase与SocketBase
- java 笔记------instanceof、抽象、接口的应用
- 【剑指offer】链表相关-逆向输出
- JAVA 的IO操作(三) 字符输出流和输入流:Writer和Reader
- 2014年2月28日
- 黑马程序员_总结11-java 多线程
- ZeroMQ(java)中监控Socket
- 2014年2月28日
- 2014年2月28日
- 2014年2月28日