JAVA入门篇(二)之类的继承

关于继承

在我们使用JAVA进行类的定义时,常常会遇到出现两种类大部分属性相同,但存在一定区别的情况,如定义两种类:学生和大学生、书和练习册等等,在这种情况下,重复的编程段会造成代码的冗余,因此如果能利用现有的数据类型对其进行“复制”,再加以修改和完善,会更加节省时间。
“继承”正是由此设计,但继承并不完全是“复制”。若称原始类为父类(基础类,超类),修改后的“复制”类为子类(继承类),则当父类发生变化时,子类中继承了父类的那部分也会发生改变。但为了趋近现实,我们不必定义两个完全一样的类,所以为了区分衍生类与基础类,我们可以:

  1. 为衍生类添加新函数(功能)—能满足大部分情况的需要;
  2. 为衍生类函数定义一个新定义(如:方法重写)。

如何继承

继承的格式为:
public class 子类 extends 父类 {

}

以学生和大学生为例:
先建立一个学生类

public class Student{
       
       private String name;
	
	   //定义set方法,初始化名字属性
	   public void setName(String n){
	          name = n;
	   }
	   //定义get方法,获取属性的方法
	   public String getName(){
	          return name;
	   }
	
	   public void study(){
	          System.out.println(name+"正在学习!");
	   }
}

再建立一个继承了学生类的大学生类

public class UNStudent extends Student{
      
       public void printName(){
	          System.out.println("名字:"+getName());
	   }
	
	   //方法重写(覆盖)
	   public void study(){
		         System.out.println("子类重写父类的方法!");
	}
}
方法重写

方法重写的两个基本条件为:

  1. 有继承关系的两个类之间;
  2. 返回值类型,方法名,参数类型(个数,顺序)完全一样。

主函数`
public class Manage {

public static void main(String[] args) {
	
	   //自动转型
	   UNStudent st = new UNStudent();
	   st.setName("张三");
  	   st.study();

       //强制转型
	   UNStudent unst = (UNStudent)st;
	   unst.printName();
	   
}
自动转型

由于子类与父类有相同的类型,这是自动定义的,在实际操作中自动转型的代码不必加入。(强制转型除外)

强制转型

在进行强制转型前一定要出现自动转型。

补充:修饰符
  • public: 可以任何位置的其他类访问
    - private: 只能被本类访问和修改(类外可以通过set方法与get方法进行存取属性值)
    - protected: 可以被本类及其子类访问,可以跨包访问
    - default:(缺省修饰符)不能跨包访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值