多态,final,抽象类
来源:互联网 发布:小米平板2怎么关闭优化 编辑:程序博客网 时间:2024/06/14 18:28
多态
多态的必要条件:要有继承,要有方法重写,父类引用指向子类对象
父亲出面接到工作,具体有他孩子去做这件事。Object 对象类 他是所有java类的父类(根基类)
如果一个类没有继承任何类,这个类就继承了Object类
向上转型:子类转成父类,(父类出面,而子类做事)
向下转型:父类再转成原有的子类。(强制,注意类型转换异常)
super 代表父类本身 this 代表当前对象本身
== 和equals的区别
== 可以用来进行基本数据类型值的比较 int i =1;int j=1; i==j;// true
引用数据类型==比较的是内存地址是否相等。
Person p1 = new Person();
Person p2 = new Person();
p1==p2; // false
equals 用来比较两个对象的内容是否相等;
String s1 = "abc";
String s2 = "abc";
s1.equals(s2);// true
A instanceof B 用来判断A对象和B对象是否是同一种类型 是返回true 否则返回false
final
final 最终的,最后的,不变的
修饰属性:修饰一个变量,这个变量就变成了常量。
修饰方法:方法不能被子类重写。
修饰类:这个类不能被继承。
抽象类
抽象类:提供一种模版,提供抽象方法,抽象方法子类必须重写。保证子类的方法一致性,很好的实现多态。abstract :修饰类 类是变成抽象类。
修饰方法:方法变成抽象方法,抽象方法的意义是为了让子类重写,没有方法体;
抽象类的定义:一个被abstract修饰的类就是抽象类。
包含一个抽象方法的类是抽象类。(抽象类不一定会有抽象方法)
static final 修饰一个变量,变成全局常量
abstract 抽象的
final 最终的
题
编写程序实现比萨制作。需求说明编写程序,接收用户输入的信息,选择需要制作的比萨。可供选择的比萨有:培根比萨和海鲜比萨。
实现思路及关键代码
1) 分析培根比萨和海鲜比萨
2) 定义比萨类
3) 属性:名称、价格、大小
4) 方法:展示
5) 定义培根比萨和海鲜比萨继承自比萨类
6) 定义比萨工厂类,根据输入信息产生具体的比萨对象
package com.pizza;/** * 披萨类 * * @author Administrator * */public abstract class Pizza {String name;double price;double size;public abstract void info();// 定义一个工厂类public static Pizza getInstance(int i) {if (i == 1) {return new Pergen();} else if (i == 2) {return new Seafood();}return null;}}
package com.pizza;/** * 培根 * @author Administrator * */public class Pergen extends Pizza{@Overridepublic void info() {System.out.println("我是培根");}}
package com.pizza;/** * 海鲜 * * @author Administrator * */public class Seafood extends Pizza {@Overridepublic void info() {System.out.println("我是海鲜");}}
package com.pizza;public class Test {public static void main(String[] args) {Pizza p1 = Pizza.getInstance(1);Pizza p2 = Pizza.getInstance(2);p1.info();p2.info();}}编写程序实现软料购买:编写程序,接收用户输入的信息,选择购买的饮料。可供选择的饮料有:咖啡、矿泉水和可乐。其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。购买可乐时可以选择:买可口可乐还是百事可乐。
package com.drink;/** * 饮料类 * * @author Administrator * */public abstract class Drink {String name;String volume;public abstract void info();}
package com.drink;/** * 咖啡 * @author Administrator * */public class Coffee extends Drink{private String pl;@Overridepublic void info() {System.out.println("名称:"+name);System.out.println("配料:"+pl);System.out.println("容量:"+volume);}public String getPl() {return pl;}public void setPl(String pl) {this.pl = pl;}}
package com.drink;/** * 水类 * @author Administrator * */public class Water extends Drink{@Overridepublic void info() {System.out.println("名称:"+name);System.out.println("容量:"+volume);}}
package com.drink;/** * 可乐 * * @author Administrator * */public class Cola extends Drink {private String pp;@Overridepublic void info() {System.out.println("名称:"+name);System.out.println("品牌:"+pp);System.out.println("容量:"+volume);}public String getPp() {return pp;}public void setPp(String pp) {this.pp = pp;}}
package com.drink;import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请选择:1.咖啡,2.矿泉水,3.可乐");switch (sc.nextInt()) {case 1:System.out.println("请输入购买的容量:");Coffee c = new Coffee();c.volume = sc.next();c.name = "咖啡";System.out.println("请选择配料:1.加糖,2.加奶,3.什么都不加");switch (sc.nextInt()) {case 1:c.setPl("加糖");break;case 2:c.setPl("加奶");break;case 3:c.setPl("什么都不加");break;}c.info();break;case 2:System.out.println("请输入购买的容量:");Water w = new Water();w.volume = sc.next();w.name = "矿泉水";w.info();break;case 3:System.out.println("请输入购买的容量:");Cola co = new Cola();co.volume = sc.next();co.name = "可乐";System.out.println("请选择品牌:1.可口可乐,2.百事可乐");switch (sc.nextInt()) {case 1:co.setPp("可口可乐");break;case 2:co.setPp("百事可乐");break;}co.info();break;}}}
阅读全文
0 0
- 多态,final,抽象类
- final,多态,抽象类,接口
- 重写、多态、抽象类、final及接口
- final关键字、多态、抽象类、接口
- final,多态,抽象,接口
- final关键字 多态 抽象
- 单例类、final、抽象类
- 抽象类,接口,final
- final关键字、抽象类
- Final与抽象类
- 抽象类&final
- 抽象类 final
- final 抽象类 抽象方法 接口
- final关键字 多态 抽象 作业
- java基础 多态 抽象 final
- 抽象类和关键字final
- final、抽象类和接口
- 抽象类、接口和final
- COJ: Languages(字符串处理、map映射)
- HDU 2009
- ZOJ 3802 Easy 2048 Again(状压DP+位运算)【一维状压类模板--2048】
- 【九度OJ-1172】 哈夫曼数
- 设计模式(10)--外观模式
- 多态,final,抽象类
- c语言printf函数的使用详解
- JS基础三
- Js递归方法解决兔子问题
- HDU 2489 Minimal Ratio Tree(dfs+最小生成树-Prim)
- 最小均方误差
- 【南阳 oj】 8--一种排序(sort排序)
- Spring boot学习之spring-data-jpa的使用(二)
- HIVE2 :beeline连接设置用户名和密码注意问题