继承extends
1、什么是继承,有什么用?
继承:在现实世界当中也是存在的,例如:父亲很有钱,儿子不用努力也很有钱。
继承的相关特性
1、B类继承A类,则称A类为超类(superclass)、父类、基类,B类则称为子类(subclass)、派生类、扩展类。
class A{}
class B extends A{ }
我们平时聊天说的比较多的是:父类和子类。
superclass 父类
subclass 子类
2、java 中的继承只支持单继承,不支持多继承,C++中支持多继承,这也是java体现简单性的一点,换句话说,java中不允许这样写代码:
class B extends A,C{ }
3、虽然java中不支持多继承,但有的时候会产生间接继承的效果,
例如: class c extends B, class B extends A,也就是说,C直接继承B,其实c还间接继承A.
4、java中规定,子类继承父类,除构造方法不能继承之外,剩下都可以继承。但是私有的属性无法在子类中直接访问(父类中private修饰的不能在子类中直接访问。可以通过间接的手段来访问。)
5、java 中的类没有显示的继承任何类,则默认继承object类,object类是java 语言提供的根类(老祖宗类),也就是说,一个对象与生俱来就有Object类型中所有的特征.
6、继承也存在一些缺点,例如:CreditAccount类继承Account类会导致它们之间的耦合度非常高,Account类发生改变之后会马上影响到creditAccount类
继承extends
1、测试:子类继承父类之后,能使用子类对象调用父类方法吗?
可以,因为子类继承了父类之后,这个方法就属于子类了。
当然可以使用子类
2、在实际开发中,满足什么条件的时候,我可以使用继承呢?
凡是采用"is a"能描述的,都可以继承。
例如:
cat is a Animal:猫是一个动物
Dog is a Animal:狗是一个动物
CreditAccount is a Account:信用卡账户是一个银行账户
假设以后的开发中有一个A类,有一个B类,A类和B类确实也有重复的代码那么他们两个之间就可以继承吗?不一定,还是要看一看它们之间是否能够使用is a来描述。
3、任何一个类,没有显示继承任何类,默认继承object,那么object类当中有哪些方法呢?老祖宗为我们提供了哪些方法?
一定要适应看JDR的源代码(多看看牛人写的程序自己才会变成牛人。)先模仿后超械。
string[] args
system . out.println () ;
源码
注意:当源码当中一个方法以";"结尾,并且修饰符列表中有"native"关键字表示底层调用c++写的dil程序(dl1动态链接库文件)