继承与多态

目录

1.继承

2.多态


查个题外话;

面向对象的三大特性:封装,继承和多态

封装优点:(1)隐藏信息(2)减少耦合(3)内部结构可以自由修改

继承优点:代码复用

1.继承

super()作用:子类在继承父类时,可能会出现变量隐藏(子类成员变量与父类同名),方法覆盖(子类的防范与父类同名,方法的返回值类型,入口参数数目,类型,顺序均相同)

(1)用来访问父类中被覆盖的方法

(2)访问父类中被隐藏的成员变量

(3)调用父类的构造方法

示例:

package chapter4;
class BankAccount
{
	private String id;
	private double balance;
	
    public BankAccount()
    {
   this.id=id;
   this.balance = balance;
    }
    public BankAccount(String id,double balance)
    {
    	this.id=id;
    	this.balance = balance;
    }
    public void withdraw(double amount)
    {
    	balance = balance - amount;
    }
    public void deposite(double amount)
    {
    	balance +=amount;
    }
    public double getbalance()
    {
    	return balance;
    }
    public String getid()
    {
    	return id;
    }
    
}
class SavingsAcount extends BankAccount{
	//属性
	private double interate;
    //构造
	public SavingsAcount(String id,double balance,double interate)
	{
		super(id,balance);
		this.interate = interate;
	}
	//得到利息
	public void addInterrate()
	{
		deposite(getbalance()*interate);
	}
}
package chapter4;
public class BankAccounttest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		BankAccount b1 = new BankAccount("TKK10001",10000);
		System.out.println(b1.getid()+":"+b1.getbalance());
		b1.withdraw(2000);
		b1.deposite(10000);
		System.out.println(b1.getid()+":"+b1.getbalance());
		SavingsAcount ss = new SavingsAcount("TKK10002",10000,0.06);
		System.out.println(ss.getid()+":"+ss.getbalance());
		ss.addInterrate();
		System.out.println(ss.getid()+":"+ss.getbalance());

	}

}

输出:

TKK10001:10000.0
TKK10001:18000.0
TKK10002:10000.0
TKK10002:10600.0

2.多态

多态,就是指一个引用(类型)在不同情况下的多种状态,可以理解为,多态是指通过只想指向父类的指针,来调用在不同子类中实现的方法

多态示例:

package 继承和多态;

public class Wine {
	//成员变量
	private String name;
	//构造
	public Wine(String name)
	{
		this.name = name;
	}
	//方法函数
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public String drink()
	{
		return "喝的是"+getName();
	}
	

}
package 继承和多态;

public class JNC extends Wine {
	public JNC(String name)
	{
		super(name);
	}
	
	public String drink()
	{
		return "喝的是"+getName();
	}

}




package 继承和多态;

	public class WLY extends Wine {
		public WLY(String name)
		{
			super(name);
		}
		
		public String drink()
		{
			return "喝的是"+getName();
		}

}

测试:

package 继承和多态;

public class WineTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Wine w1 = new JNC("剑南春");
		Wine w2 = new WLY("五粮液");
		System.out.println(w1.drink());
		System.out.print(w2.drink());
		

	}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值