Java面向对象 第三章(2)

1.继承

(1)继承语法

[修饰符] class 子类名 [extends 父类名]{
	
}

(2)子类会继承父类所有非私有成员

(3)一个子类只能有一个父类

2.重载和重写

(1)重载:方法名相同,参数列表必须不同,返回值必须相同

(2)重写,子类重写父类中的方法,方法头部必须相同。重写后父类方法会被覆盖,使用super可以调用被子类重写覆盖的方法

3.多态

(1)同一操作用于不同的对象会产生不同的结果

(2)通过父类的引用指向子类的对象,调用子类中重写父类的方法

(3)instanceof运算符,用来判断对象是不是该类的对象或该类子类的对象。也可以判断这个对象是否可以进行强制类型转换。

练习
1.练习使用继承和重写
 

package Test;

public class database {
	String title;
	int playtime;
	String isBrrow;
	
	public database(String title,int playtime,String isBrrow){
		this.title = title;
		this.playtime=playtime;
		this.isBrrow=isBrrow;
	}
	
	public void print(){
		System.out.printf("标题:%s\t播放时间:%d\t是否外借:%s\n",title,playtime,isBrrow);
	}
}
package Test;

public class DVD extends database {
	String director;
	public DVD(String title,int playtime,String isBrrow,String director){
		super(title,playtime,isBrrow);
		this.director=director;
	}
	public void print(){
		System.out.printf("标题:%s\t导演:%s\t播放时间:%d\t是否外借:%s\n",title,director,playtime,isBrrow);
	}
}

package Test;

public class CD extends database {
	String artist;
	public CD(String title,int playtime,String isBrrow,String artist){
		super(title,playtime,isBrrow);
		this.artist=artist;
	}
	public void print(){
		System.out.printf("标题:%s\t艺术家:%s\t播放时间:%d\t是否外借:%s\n",title,artist,playtime,isBrrow);
	}
}

package Test;

public class Test {
	public static void main(String[] args) {
		database cd1= new CD("起风啦",120,"是","麦辣鸡");
		database cd2= new CD("上号",43,"是","把门那样");
		cd1.print();
		cd2.print();
		database dvd1= new DVD("一出好戏",120,"否","黄渤");
		dvd1.print();
	}
}

2.可以使用方法重载来传参,传入两个参数里计算长方形的面积,传入三个参数计算长方体的体积

package Test2;

public class Rectangle {
	int l;
	int w;
	public Rectangle(int l,int w){
		this.l=l;
		this.w=w;
	}
	public int getArea(){
		return l*w;
	}
}

package Test2;

public class Rectangular extends Rectangle {
	int h;

	public Rectangular(int l, int w) {
		super(l, w);
	}

	public Rectangular(int l, int w, int h) {
		super(l, w);
		this.h = h;
	}

	public int getVolume() {
		return super.getArea() * h;
	}
}

package Test2;

public class Test {

	public static void main(String[] args) {
		Rectangular le = new Rectangular(12, 3);
		System.out.println("长方形的面积:" + le.getArea());
		Rectangular ular = new Rectangular(12, 3, 4);
		System.out.println("长方体的面积:" + ular.getVolume());
	}

}

总结:

1.多记多练

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值