java基础九(继承)

1.继承extends


//使用继承机制来解决代码复用问题
public class ExtendsTest02{
	public static void main(String[] args){
		//普通账户
		Account act = new Account();
		act.setActno("11111");
		act.setBalance(100000);
		System.out.println(act.getActno()+"余额"+act.getBalance());

		//创建信用账户
		CreditAccount ca = new CreditAccount();
		ca.setActno("22222");
		ca.setBalance(-10000);
		ca.setCredit(0.99);

		System.out.println(ca.getActno() + "余额" + ca.getBalance() + ",信誉度" + ca.getCredit());
	}
}

//银行账户类
//账户的属性:账号,余额
class Account{//父类
	private String actno;
	private double balance;
	//构造方法
	public Account(){

	}
	public Account(String actno,double balance){
		this.actno =actno;
		this.balance = balance;
	}

	//setter and getter 方法
	public void setActno(String actno){
		this.actno = actno;
	}
	public String getActno(){
		return actno;
	}
	public void setBalance(double balance){
		this.balance = balance;
	}
	public double getBalance(){
		return balance;
	}
}


//其他类型的账户:信用卡账户
//账户、余额、信誉度
class CreditAccount extends Account{//子类
	private double credit;

	//构造方法
	public CreditAccount(){

	}

	public void doSome(){
		//错误:actno 在Account中是 private 访问控制的
		System.out.println(actno);
		//间接访问
		System.out.println(this.getActno());
	}


	//setter and getter方法
	public void setCredit(double credit){
		this.credit = credit;
	}
	public double getCredit(){
		return credit;
	}
}
1.1 什么是继承,有什么作用?

继承:在现实世界当中也是存在的,例如:父类很有钱,儿子不用努力也很有钱.
继承的作用:

  1. 基本作用:子类继承父类,代码可以得到复用.(这个不是重要的作用,是基本作用)
  2. 主要作用:因为有了继承机制,才有了后期的方法覆盖和多态机制.
1.2继承的相关特性?
  1. B类继承A类,则A类可以称为超类,父类,基类,
    B类称为子类,扩展类,派生类

     class A{}
     	class B extends A()
    
  2. java中的继承只支持单继承,不支持多继承,C++支持多继承

    class X{
    
    }
    
    class Y extends X{
    
    }
    
    class M extends X{
    
    }
    
    //其实这也说明了z是直接继承X和Y的
    //这样描述:z直接继承了Y,Y间接继承了X
    class Z extends Y{
    	
    }
    
  3. 虽然,java中不支持多继承,但是有时候会产生间接继承的效果.例如:class Z extends Y,class Y extends X,也就是说z直接继承了Y,Y间接继承了X,X继承了object

  4. java中规定,子类继承父类,除构造方法不能继承外,剩下的都可以继承.但是私有的属性无法在子类中直接访问。(父类中private修饰的不能在子类中直接访问,可以通过间接的手段来访问)
    不能直接ca.actno;可以ca.getActno();

  5. java中的类没有显示的继承任何类,则默认继承Object类,Object类是java语言提供的根类(老祖宗),也就是说,一个对象与生俱来就有所有的特征
    (object是所有类的超类)

  6. 继承也存在一些缺点,耦合度高,父类修改子类受到牵连.

1.1子类继承父类,能使用子类对象调用父类方法吗?
可以,因为继承后,父类方法也属于子类了
1.2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值