对继承的浅理解

  今天我们讲了java继承的相关内容,左老师(左哥)总是可以用很生动的例子来加深我们对继承的理解,我也是努力的去消化左哥讲的知识点。下面我来跟大家谈谈我对java继承的初步理解。

  首先,要对继承进行学习,必须先弄明白三大类,普通类、抽象类、接口类。 普通类,只可以有普通方法和构造方法,可以创建对象(这是和抽象类、接口类不同的特点)。抽象类可以包括普通方法、构造方法、抽象方法,但是不可以创建对象。而接口类只有抽象方法,并且和抽象方法相同,不可以创建对象(重要的事情说三遍。抽象类和接口类都不可创建对象,只有普通类可以)。

  现在我们初步了解了三大类,现在讲解一下继承的概念。继承,顾名思义儿子继承父亲的财产。左老师讲的这个例子真的很形象,父亲可以有好多儿子,但是儿子只可以有一个父亲。继承(父子),包含父类和子类,子类通过继承关系获取父类的所有非私有权限的属性和方法 ,属于单继承关系。继承可以分为好多种,包含普通类继承普通类、普通类继承抽象类、普通类继承接口类、抽象类继承接口类。这么多继承关系用现实中工作上下级关系就可以很好的理解了。类接口抽象类体现模型:程序员(动手不动口)->小组长(动口也动手)->项目经理(动口不动手)。程序员属于普通类,需要执行(继承)小组长和项目经理的要求(有权限属性),所以它是动手不动口。项目经理属于抽象类,只有发布要求(属性),不需要去执行命令,所以是动口不动手  小组长属于抽象类,因为抽象类包括普通方法、构造方法和抽象方法,属于普通类和抽象类的集合,所以既需要动手(相对于项目经理)又需要动口(相对于程序员)。

 在继承中,由于各类之间所允许使用的方法不是相同的,所以需要在继承不被允许的方法时需要进行方法重写,即子类重写父类的方法。重写条件:子类的方法名、参数、返回值必须和父类继承过来的方法一致,方法体不一样。
比如普通类继承抽象类时候,由于抽象类可以包括抽象方法,所以需要对抽象方法普通化。例如让人继承学生的学习的能力。

//普通类
public class People{
      public string name;
	public string sex;
	public int weight;


	public void play(){};
	public viod speak(){};
	public viod run(){};
}
//抽象类
public abstract class Student{
	public abstract void study();
}
//普通类继承抽象类
public class People extends Student{
 	public void study(){}
}
再还有普通类继承接口类。需要对接口类抽象方法进行普通化。
//普通类
public class People{
      public string name;
	public string sex;
	public int weight;
	
	public void play(){};
	public void speak(){};
	public void run(){};
}
//接口类
public class Teacher{
	public void teach();
}
//普通类继承接口类
public class People implements Teacher{
	public void teach(){};
}
  在继承中还存在自动转型和多态现象。以下代码为例。自动转型就是说当子类继承父类的时候,子类对象自动转型为父类类型
转型后的对象,如果子类重写了父类方法,则执行的是重写后的方法。

则多态现象是同一个类型的对象,执行同样方法,执行过程不一样(子类重写)造成的。
原因:由于自动转型+子类重写父类方法 ,  执行的是子类重写后的方法。

//自动转型
//多态现象
public class Text{
	public static void main(String[] args) {
	Student peo  = new People();//自动转型
	People peo1 = new People();
	Student stu = new Student();
        peo.study();
        peo1.play();
        stu.syudy();
	}
}

构造函数,访问权限  类名(){}。用来构造对象。当创建对象的时候执行构造函数,并且将构造函数执行后结果的地址传递给对象,所以构造函数是有返回值的。


方法重载,在一个类中,具有相同的方法名,不同的参数类型、参数个数、参数顺序不一样的方法。

在构造方法重载的时候如果重载了构造函数,则类中默认的构造函数将失去作用。如果还需要用到无参的构造函数,则必须重新定义在类中。


以上就是我这一节课的对继承的感受和理解,在自动转型和多态现象方面理解的不是很深刻,或许会有些错误,本文仅是个人对继承的理解,仅供参考。如有抄袭,后果自负。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值