JAVA 继承、方法重写、多态学习笔记
来源:互联网 发布:oracle导入数据库 编辑:程序博客网 时间:2024/05/29 06:47
继承、方法重写、多态
使用继承优化设计将重复代码抽取到父类中
使用继承编写父类class Engineer {
//公共的属性和方法
}
编写子类,继承父类
class SoftEngineer extends(只能继承一个父类) Engineer {
//子类特有的属性和方法
}
子类访问父类成员 使用super关键字
访问父类属性 super.name;
super代表父类对象
访问父类方法
super.print();
有些父类成员不能继承
子类不能访问父类private成员
子类与父类不在同包,使用默认权限的成员
构造方法
访问修饰符protected
可以修饰属性和方法
本类、同包、子类可以访问
方法重写的规则
在继承关系的子类中
重写的方法名、参数、返回值类型必须与父类相同
私有方法不能继承因而也无法重写
abstract也可用于方法——
抽象方法
抽象方法没有方法体
抽象方法必须在抽象类里
抽象方法必须在子类中被实现,除非子类是抽象类
public abstract void play() 没有方法体
static可以用来修饰属性、方法和代码块
static修饰的属性和方法称为类属性(类变量)、类方法
不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量)、实例方法
static修饰的变量和方法可以通过类名和对象名访问,而不用static修饰的变量和方法只能通过对象名访问
final用法
父类调用子类方法:
练习图形面积
车型 别克商务舱GL8宝马550i 别克林荫大道座位 <=16座>16座
日租费(元/天) 600 500 300 日租费(元/天)800 1500
package Carteacher;public abstract class Moto {public abstract double calePrice(int days);}
package Carteacher;public class Bus extends Moto {private int seatCount; public Bus() {super();// TODO Auto-generated constructor stub}public Bus(int seatCount) {super();this.seatCount = seatCount;}public int getSeatCount() {return seatCount;}public void setSeatCount(int seatCount) {this.seatCount = seatCount;}@Overridepublic double calePrice(int days) {// TODO Auto-generated method stubdouble money=0;if (seatCount<=16) {money=800*days;}else{money=1600*days;}return money;}}
package Carteacher;public class Car extends Moto{private char type;private final char GL8='A';private final char BMW='B';private final char GM='C';public Car() {super();// TODO Auto-generated constructor stub}public Car(char type) {super();this.type = type;}public char getType() {return type;}public void setType(char type) {this.type = type;}@Overridepublic double calePrice(int days) {// TODO Auto-generated method stubdouble money=0;switch (type) {case GL8:money=600*days;break;case BMW:money=500*days;break;case GM:money=300*days;break;default:break;}return money;}}
package Carteacher;import java.util.Scanner;public class Test {public double calePrice(Moto mv,int days){return mv.calePrice(days);}public static void main(String[] args) {// TODO Auto-generated method stubTest test=new Test();Scanner sc=new Scanner(System.in);System.out.println("请选择车型*1*轿车:*2*客车");int a=sc.nextInt();if (a==1) {System.out.println("请选择车型 A别克林 B宝马 C别克商");String str=sc.next();char type=str.charAt(0);System.out.println("请输入天数");int days=sc.nextInt();Car car=new Car(type);double money=test.calePrice(car, days);System.out.println(type+"轿车"+money+"元租用"+days+"天");}else if (a==2) {System.out.println("请输入座位数");int n=sc.nextInt();System.out.println("请输入天数");int days=sc.nextInt();Bus bus=new Bus(n);double money=test.calePrice(bus, days);System.out.println(n+"座客车"+money+"元租用"+days+"天");}}}
作者:冲天支峰 20160529
3 0
- JAVA 继承、方法重写、多态学习笔记
- 【Java学习笔记】抽象,多态及方法重写
- Java学习笔记之封装 、继承、方法的重写、final、super
- [2014-03-07]JAVA笔记_继承、方法重写
- Java学习笔记2016.2.17 方法重写
- 【Java学习笔记】重写equals()方法
- JAVA学习笔记11——继承+重写
- java 继承中的方法重写
- java学习日记——继承中方法的重写
- 继承、方法重写和多态
- 构造器、方法重载、继承、方法重写、自动转型、多态课堂笔记
- JAVA 方法重载,方法重写,继承
- java语言:方法重载&方法重写&继承
- Java学习笔记:继承与多态
- Java学习笔记---继承和多态
- 【Java学习笔记】继承和多态
- Java学习笔记--继承中的构造方法
- java笔记之封装、继承、重写、多态以及类型转换
- JamesMusic浅读--------6,补全欢迎界面,音乐文件数据库
- hibernate+struts2学生信息管理系统简单整合
- java线程操作 sleep wait start wait 等
- poj1163The Triangle(DP)
- hdu2005第几天?
- JAVA 继承、方法重写、多态学习笔记
- 新闻发布网页-1
- 天梯匹配系统 - 简单实现
- S6720 核心交换配置实战
- android开发那些事儿(五)-通用流行框架大全
- CodeForces 659A Round House
- ToolBar的使用
- 教你如何用Circleimageview十秒钟写出万能视频的Android圆形控件适配器
- 周赛Problem 1025: Hkhv love spent money(RMQ)