Java面向对象——继承

Java面向对象——继承,第1张

Java面向对象——继承 关于Java语言当中的继承

1、继承是面向对象三大特征之一,三大特征分别是:封装、继承、多态

2、继承基本的作用是:代码复用。但是继承最重要的作用是:有了继承才有了以后的方法的覆盖和多态机制。

3、继承的语法格式:

[修饰符列表] class 类名 extends 父类名 (){

类体 = 属性 + 方法

}

4、Java语言当中的继承只支持单继承 ,一个类不能同时继承很多类,只能继承一个类。(在C++中支持多继承)

5、关于继承中的一些术语:

B类继承A类,其中:

A类称为:父类、基类、超类、superclass

B类称为:子类、派生类、subclass

6、在Java语言当中子类继承父类都继承哪些数据?

- 私有的不支持继承

- 构造方法不支持继承

- 其他数据都支持继承

7、虽然Java语言只支持单继承,但一个类也可以间接继承其他类,例如:

        C extends B{

        }

        B extends A{

        }

        A extends T{

        }

C类直接继承B类,但C类间接继承A、T类。

8、Java语言中假设一个类没有显示地继承任何类,该类默认地继承Javase库当中提供的java.lang.Object类。Java语言中任何一个类都有Object类的特征。

public class ExtendsTest {
	//查找类型快捷键:ctrl + shift + T
	//查找资源快捷键:ctrl + shift + R
	public static void main(String[] args) {
		
		ExtendsTest et = new ExtendsTest();
		String s = et.toString();
		System.out.println(s);//inherit.ExtendsTest@1a1d6a08
		
	}

}

上述代码中"toString()"验证了Java语言中任何一个类都有Object类的特征。


银行账户类 

public class Account {
	
	private String actnum;
	private double balance;//余额
	
	public Account() {
	}
	public Account(String actnum, double balance) {
		this.actnum = actnum;
		this.balance = balance;
	}
	
	public String getActnum() {
		return actnum;
	}
	public void setActnum(String actnum) {
		this.actnum = actnum;
	}
	public double getBalance() {
		return balance;
	}
	public void setBalance(double balance) {
		this.balance = balance;
	}
	
}

 xyk账户类

public class CreditAccount {
	
	private String actnum;
	private String balance;
	private String credit;
	
	public CreditAccount() {
	}

	public CreditAccount(String actnum, String balance, String credit) {
		this.actnum = actnum;
		this.balance = balance;
		this.credit = credit;
	}
	
	public String getActnum() {
		return actnum;
	}

	public void setActnum(String actnum) {
		this.actnum = actnum;
	}

	public String getBalance() {
		return balance;
	}

	public void setBalance(String balance) {
		this.balance = balance;
	}

	public String getCredit() {
		return credit;
	}

	public void setCredit(String credit) {
		this.credit = credit;
	}
	
	
}

观察两种类,其中有很多重复的地方

	private String actnum;
	private String balance;

public String getActnum() {
		return actnum;
	}

	public void setActnum(String actnum) {
		this.actnum = actnum;
	}

	public String getBalance() {
		return balance;
	}

	public void setBalance(String balance) {
		this.balance = balance;
	}

上述这些为相同重复部分

改进:extends 继承

public class CreditAccount extends Account{
	

	private String credit;
	
	public CreditAccount() {
	}

	public String getCredit() {
		return credit;
	}

	public void setCredit(String credit) {
		this.credit = credit;
	}
	
	
}

 实践发现,可以调用,继承成功。


public class ExtendsTest02 {

	public static void main(String[] args) {

		C c = new C();
		c.doSome();
		
	}

}

class A{
	public void doSome () {
		System.out.println("do some!");
	}
}

class B extends A{
	
}

class C extends B{
	
}

上述中c.doSome调用的doSome方法是从B类中继承过来的。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5717768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存