java请编写公共类继承抽象类_java基础(四):继承,抽象类,final

一.继承

1.如何使用继承

2.子类访问父类成员

3.访问修饰符总结

4.多重继承关系的初始化顺序

5.何时使用继承

6. 重写

7.抽象类

8.final用法

9. Object类

10. 内部类

一.继承

1.如何使用继承

编写父类

classPet {//公共的属性和方法

}

编写子类,继承父类

class Dog extendsPet {//子类特有的属性和方法

}

只能继承一个父类

2.子类访问父类成员

访问父类构造方法: 使用super关键字,super代表父类对象,在子类的构造方法中调用,且必须是第一句

super();super(name);

访问父类属性

super.name;

访问父类方法

super.print();

super关键字来访问父类的成员

super只能出现在子类的方法和构造方法中

super调用构造方法时,只能是第一句

super不能访问父类的private成员

子类能访问父类的所有资源吗?

不能被继承的父类成员:

private成员

子类与父类不在同包,使用默认访问权限的成员

构造方法

3.访问修饰符总结

private : 本类

默认(friendly) : 本类, 同包

protected : 本类,同包,子类

public : 本类,同包,子类, 其他

d80f158bb7e8bf1c1bc0bb38cfb7b2c0.png

4.多重继承关系的初始化顺序

父类属性 - > 父类构造方法 - > 子类属性 -> 子类构造方法

5.何时使用继承

当符合is-a关系时

继承是代码重用的一种方式:

将子类共有的属性和行为放到父类

6. 重写

构造方法会被重写吗?

不能被继承,因此不能重写。

方法重写的规则?

方法名相同

参数列表相同

返回值类型相同或者是其子类

访问权限不能严于父类

方法重载和方法重写

50283a1c21c3edd4e89b39891564a736.png

7.抽象类

abstract 关键字

可以用于类,也可以用于方法。

抽象方法没有方法体

抽象方法必须在抽象类里

抽象方法必须在子类中被实现,除非子类是抽象类

8.final用法

final 用于类:表示类不能被其他类继承

public final class Penguin extendsPet {//…

}

用于方法:表示方法不能被重写

public final voidprint () {//…

}

用于属性:表示属性值不能被修改

public classPenguin {final String home ="南极";//居住地

public voidsetHome(String name){this.home=home; //错误,不可再赋值

}

}

使用final修饰引用型变量,变量的值是固定不变的, 而变量所指向的对象的属性值是可变的

9. Object类

Object类是所有类的父类

一个类如果没有使用extends显示的继承另外一个类, 那么这个类就继承自Object类。

Object类的主要方法

(1)toString()方法

(2)equals()方法

10. 内部类

把一个类定义在另一个类的内部称为内部类

package cn.bjsxt.demo;//声明包

class Outer//声明类

{private String info="hello World";//声明私有属性

class Inner//声明类

{public void print(){//打印输出的方法

System.out.println(info);

}

}public void fun(){//定义方法

new Inner().print();//通过内部类调用方法

}

}public class TestOuterAndInner2//测试类

{public static voidmain(String [] args){new Outer().fun();//调用方法

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值