java构造派生类 重载,java中的继承、重载、重写、构造、多态

java中的继承、重载、重写、构造、多态、抽象类、接口、封装、访问控制

一、继承

继承使得可以定义一个通用的类(即父类),之后扩充该类成为一个更加特定的类(子类)。当子类继承父类时使用关键字extends。

现在创建一个名为test的java项目,并创建一个名为test的包,在test包中创建三个类,分别为:SUPER.java,SUPERA.java,Test.java。

9bf435565226986ed86d837bf53f964d.png

Test.java中的内容如下:

package test;

public class Test {

public static void main(String[] args) {

System.out.println("hi");

SUPERA ABA=new SUPERA();

ABA.cba();

}

}

SUPER.java中的内容如下

package test;

public class SUPER {

int age=18;

String name="James";

void abc(int age,String name) {

System.out.println(name+age);

}

void cba() {

System.out.println("这是父类无参");

}

}

SUPERA.java中的内容如下:

package test;

public class SUPERA extends SUPER {

void nnn() {

cba();

}

}

从上面三个java文件中可以看出,SUPER.java是父类,SUPERA.java是子类,当子类继承父类时使用了extends关键字。父类SUPER中定了了两个方法,一个是有参的abc()和一个无参的cba()。子类SUPERA中定义了一个nnn()方法,该方法中使用super关键字调用了父类中的cba()无参方法。因此在主类TEST.java中实例化后,调用了父类的cba()方法。

二、重载

重载又称方法的重载,即在同一个类中有多个方法,这些方法有相同的方法名,但是参数列表不相同。

例如:在项目test下面创建一个名为OVERLOAD的包,在此包中创建两个java文件,分别为overloadDemo.java和OVERLOAD.java。其中:

overloaddemo.java中的内容为:

package OVERLOAD;

public class overloadDemo {

public static void main(String[] args) {

OVERLOAD NEW = new OVERLOAD();

NEW.sayHello();

NEW.sayHello(6);

NEW.sayHello("james");

}

}

OVERLOAD.java中的内容为:

package OVERLOAD;

public class OVERLOAD {

void sayHello() {

System.out.println("hello");

}

void sayHello(String name) {

System.out.println(name);

}

void sayHello(int num) {

System.out.println(num);

}

}

三、重写

方法的继承是指子类可以重写(覆盖)继承自父类的方法,即子类的方法名和参数与父类相同,但方法的实现不同。当子类的方法被调用时,运行的是子类重写后的版本。重写方法时:

1、在子类中可以根据需要对从基类中继承来的方法进行重写。

2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。

3、重写方法不能使用比被重写的方法更严格的访问权限。

a.java:

public class a {

private int age;

private String name;

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

b.java

package hhhh;

public class b extends a{

private String school;

public String getSchool() {

return school;

}

public void setSchool(String school) {

this.school = school;

}

public String getInfo() {

return "my name is"+getName()+",i am "+getAge()+"years old"+",my school is"+getSchool();

}

}

c.java

package hhhh;

public class c {

public static void main(String[] args) {

b bb = new b();

bb.setName("aa");

bb.setAge(18);

bb.setSchool("school");

System.out.println(bb.getInfo());

}

}

四、访问控制

访问控制分为类的访问控制和变量的访问控制。

1、类的访问控制:public+默认

1) 类的修饰可以使用public和默认两种;

2) protected和private可以修饰内部类;

3) public修饰的类可以被任何一个访问;

4) privated修饰的类只可以被同一个包中的类使用。

2、类成员的访问控制(变量+方法):public+protected+默认+proviate

修饰类

本类

同意个包中的类

子类

其他类

public

protected

不能

默认

不能

不能

private

不能

不能

不能

五、访问控制

六、多态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值