您现在的位置:首页 > >

文科生北海糖的:Java之路??继承

发布时间:

01Java中的继承

1、继承的概念
继承是类和类的关系,是一种“is a”的关系
Java中的继承是单继承


2、继承的好处:
子类拥有父类所有的属性和方法;
实现代码的复用;
注意:private修饰的无效****无法继承


3、语法规则
class子类extends父类
例:classc Dog extends Animal{

}
Dog是子类,Animal是父类
动物和狗是继承关系。


任务注意:
在package包中修改子类的名字,可在菜单栏的refactor中的rename中选择修改;
如果父类中用了private ,那么就算私有,子类不可以调用


1、首先创建一个父类,声明属性:


2、然后在创建它的子类Car, 创建类时选择superclass继承它;自动会显示extend函数。如下图:


3、然后在创建一个main函数,创建对象,赋值,再调用方法,就可以继承父类vehicle的所有代码。



02Java中的方法重写

1、什么是方法的重写:当子类继承父类的方法不满意时,父类的方法是可以重写的,还是会优先调用子类的方法。
2、语法规则:
返回值类型
参数值类型及个数
方法名
都要与父类继承的方法相同,才叫方法的重写。


03继承的初始化对象

继承的初始化顺序
1.初始化父类然后再初始化子类
2、先执行初始化对象中属性,再执行构造方法的初始化


初始化顺序见下图:

从父类到子类,从对象、属性到构造方法。


03final关键字

最终的。
final可以修饰类、方法、属性和变量
修饰类,则表明该类不允许被继承
修饰方法,则该方法不允许被覆盖(重写)

修饰属性,则该类不会进行隐式的初始化(类的初始化属性必须有值)
或者 在构造方法中赋值(但只能选其一)

final修饰变量,则改变量只能赋一次值,即为常量。


????????????????????????2019/7/12 未完待续??????????????????????


04Super关键字的使用

01super关键字


在对象的内部使用,可以代表父类的对象。


1.访问父类的属性 super.age;
2.调用父类的方法 super.eat();
在main的method方法中直接输入子类的属性名,就能得到子类属性。
在main的method方法中直接输入子类的方法名。


super的应用:子类的构造过程中必须调用其父类的构造方法。


如果子类的构造方法中没有显示调用父类的构造方法,
则系统默认调用父类无参的构造方法。
如果显示的调用构造方法,必须在子类的构造方法的第一行。


如果子类的构造方法中既没有显示调用父类的构造方法;
而父类又没有无参的构造方法,则编译出错。
**



05Object类

Object类是所有的类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Objectl类。
Object类中的方法,适合所有的子类。


1、toString()方法
在Object类里面定义toString()方法的时候返回的对象的哈希code码(对象地址字符串)


可以通过重写 toString()方法表示对象的属性


2、equals()方法
比较的对象是:对象的引用是否指向同一块内存地址。
Dog dog = new Dog()


生活中相等的两种情况:
1、昨天我丢了个手机,你手里的手机和我昨天丢的那个手机一模一样。
2、我昨天买了个3星手机,和你手里的手机一模一样,两个对象的值都一样。


equals中比较的通常是前者,比较的对象是一个手机。生活中往往比较的是后者。比较两个对象的值是否是一样,所以要进行重写。
编译如下:


上面是第一种情况,new了两次,相当于开辟了两个内存区。判断两个对象是否相同,因为两个对象的内存地址是不相同的,所以两个对象不同。


第二种情况,比较两个对象的值。在子类界面中,重新写equals方法,在resource菜单栏中寻找equal可以自动生成需要比较的值的代码。

判断引用的两个值是否相同:
if(this == obj)表明两个对象的地址相同
if(obj == null)null 无效的;等于零的 表示另外一个对象是空值。
if(getClass()= obi.getClass())


obj.getClass() 表示类对象:年龄,姓名,身高,学历,体重,疾病 这些属性名,变量 方法名,里面的代码是什么。
new一个对象时得到的是类的对象,如obj.getClass()表示类的对象。
如果这个类的对象调用Class方法表示类的对象
类的对象,表示属性值的信息,类的对象数据的信息。


热文推荐
猜你喜欢
友情链接: