1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java基础(10)接口 方法的参数类型以及返回值类型 权限修饰符

Java基础(10)接口 方法的参数类型以及返回值类型 权限修饰符

时间:2020-04-28 09:28:46

相关推荐

Java基础(10)接口 方法的参数类型以及返回值类型 权限修饰符

1.接口

1. 接口的由来:为了体现事物功能的扩展性,Java通过接口来定义这些额外的扩展功能。但是并不给出具体实现,需要类来重写

2. 接口的特点

(1)定义接口:interface 定义格式:interface 接口名{}

(2)实现类:implements 定义格式:class 类名 implements 接口名{}

(3)接口不能实例化,需要按照多态的方式实例化

(4)接口的实现类:具体类,类中需要重写接口中所有抽象方法

public class TestDemo01 {public static void main(String[] args) {rInterface rf1 = new EZ();rf1.R(); //精准弹幕System.out.println("==============");rInterface rf2 = new Gragas();rf2.R(); //肉弹冲击}}interface RInterface{public abstract void R();}class EZ implements RInterface{String name = "伊泽瑞尔";public void attack(){System.out.println("平A");}public void magic(){System.out.println("放技能");}@Overridepublic void R() {System.out.println("精准弹幕");}}class Gragas implements RInterface{String name = "古拉加斯";public void attack(){System.out.println("平A");}public void magic(){System.out.println("放技能");}@Overridepublic void R() {System.out.println("肉弹冲击");}}

3. 接口的成员特点

(1)成员变量:只能是常量,且是静态的。默认用 public static final 修饰

(2)构造方法:接口中没有构造方法

(3)成员方法:只能是抽象方法。默认修饰符 public abstract

public class TestDemo02 {public static void main(String[] args) {LOLInterface lol = new VN();lol.R(); //终极时刻System.out.println(lol.NUM); //199}}interface LOLInterface{public static final int NUM = 199; //成员变量前面的默认修饰符是 public static finalpublic abstract void R(); //方法前面存在默认修饰符 public abstract}class VN implements LOLInterface{@Overridepublic void R() {System.out.println("终极时刻");}}

4. 类与类,类与接口,接口与接口之间的关系

(1)类与类:继承关系。只能单继承,可以多级继承

(2)类与接口:实现关系。可以单实现,也可以多实现。而且可以在继承一个类的同时实现多个接口

(3)接口与接口:继承关系。可以单继承,可以多继承

5. 抽象类与接口的区别

(1)成员变量

抽象类:可以是变量,可以是常量接口:只能是常量

(2)构造方法:抽象类有,接口没有

(3)成员方法

抽象类:可以抽象,也可以非抽象接口:必须是抽象

(注)在JDK1.8之后,接口中提供了default修饰方法,可以给出功能的具体实现。JDK1.8之后,也可以在接口中定义静态方法

public class TestDemo01 {public static void main(String[] args) {RInterface ri = new Gragas();ri.R(); //肉弹冲击//静态方法直接通过接口来调用RInterface.R2; //酒桶的肉弹冲击}}interface RInterface{//在JDK1.8之后,接口中提供了default修饰方法,可以给出功能的具体实现public default void R(){System.out.println("肉弹冲击");}//JDK1.8之后,也可以在接口中定义静态方法public static void R2(){System.out.println("酒桶的肉弹冲击");}}class Gragas implements RInterface{}

2.方法参数类型以及返回值类型问题

1. 类名

(1)类名作为形式参数:当看到一个方法的参数时一个类 类型时,就传递一个该类的对象

public class TestDemo01 {public static void main(String[] args) {Student student = new Student();test(student,30);System.out.println(student.num); //30/* test(new Student(),60);System.out.println(student.num); //30*/student.setNum(student,100);System.out.println(student.num); //100}public static void test(Student student,int num){student.num = num;}}class Student{int num = 20;public void setNum(Student student,int num){student.num = num;}}

(2)类名作为返回值:当看到一个方法的返回值类型是一个类 类型时,就返回一个该类的对象

public class TestDemo01 {public static void main(String[] args) {Student student = test(100);int num = student.num;System.out.println(num); //100}public static Student test(int num){Student student = new Student();student.num = num;return student;}}class Student{int num = 20;}

2. 抽象类

(1)抽象类作为形式参数:当看到一个方法的形参是一个抽象类 类型,就传递一个该抽象类的子类

public class TestDemo02 {public static void main(String[] args) {MySon myson = new MySon();test(myson,1000);System.out.println(myson.num); //200 只改变了父类的num值为1000,子类没有改变test(new CC(),2000);System.out.println(myson.num); //200}public static void test(MyClass myClass,int num){myClass.num = num;}}abstract class MyClass{int num = 20;public abstract void show(int num);}class MySon extends MyClass{int num = 200;@Overridepublic void show(int num) {this.num = num;}}class CC extends MyClass{@Overridepublic void show(int num) {}}

(2)抽象类名作为返回值类型:看到一个方法的返回值类型是一个抽象类 类型时,就返回一个该类抽象类的子类对象

public class TestDemo01 {public static void main(String[] args) {MyClass myClass = test(800);System.out.println(myClass.num); //200MySon mySon = (MySon) myClass;System.out.println(mySon.num); //800}public static MyClass test(int num){MySon mySon = new MySon();mySon.num = num;return mySon;}}abstract class MyClass{int num = 200;public abstract void show(int num);}class MySon extends MyClass{int num = 2;@Overridepublic void show(int num) {this.num = num;}}

3. 接口名

(1)接口名作为形式参数:如果看到一个方法的形式参数是一个接口类型,那么就传递一个该接口的实现类对象

(2)接口名作为返回值类型:如果看到一个方法的返回值类型是一个接口类型,那就返回一个该接口的实现类对象

3.权限修饰符

1. 一共有四种权限修饰符:public > protected > ( ) > private

2. 结论

3. 常见的修饰符

(1)修饰符

权限修饰符:private,( ),protected,public状态修饰符:static,final抽象修饰符:abstract

(2)修饰类的关键字

权限修饰符:( ),public状态修饰符:final抽象修饰符:abstract用的最多的:public

(3)修饰成员变量的关键字

权限修饰符:private,( ),protected,public状态修饰符;static,final用的最多的:private

(4)修饰构造方法的关键字

权限修饰符:private,( ),protected,public用的最多的:public

(5)修饰成员方法的关键字

权限修饰符:private,( ),protected,public状态修饰符:static,final抽象修饰符:abstract用的最多的:public

(6)组合

成员变量: public static final成员方法:public static(abstract、final)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。