多态,抽象类,接口

来源:互联网 发布:家具进销存软件 编辑:程序博客网 时间:2024/05/19 22:00

多态

1.方法的重载

public class Overload {public static void main(String[] args) {Overload ol = new Overload();System.out.println(ol.add(1, 2, 3));System.out.println(ol.mul(2.3f, 3.2f, 1.3f));}public int add(int a,int b,int c){int d = a+b+c;return d;}public double add(float a,float b,float c){double d=(double)a*b*c;return d;}}

结果

69.567999593257904

方法的重载的重载应用在同一个类的内部

方法的返回类型不能作为区分重载的条件

构造方法和普通方法都可以重载


2.方法的重写

父类

public class Person {public void speak(){System.out.println("父亲说。");}}

子类

public class Son extends Person{public void speak(){System.out.println("儿子说。");}}
重写应用在子父类继承关系中,是指子类提供了和父类相同的方法,包括方法的名称,参数列表,返回类型。

重写的原因:父类的条件不能满足子类,需要重写一个方法来满足自己,重写的主要是方法体的内容

但是子类的重写父类 的时候子类的访问修饰符要大于等于父类访问的范围,否则编译的时候会报错


抽象类


public abstract class Animal {private float pi = 3.14f;public abstract void eat();public void sleep(){System.out.println("动物会睡觉。");}public Animal(){}}



public class Cat extends Animal{public void eat() {System.out.println("猫喜欢吃鱼。");}}


测试类

public class test {public static void main(String[] args) {//Animal a = new Animal();//实例化报错了Animal b = new Cat();b.eat();}}


1.抽象类关键字 abstract

2.抽象类中可以有非抽象方法,有抽象方法的类一定是抽象类

3.抽象方法没有方法体

4.当子类继承抽象父类后,必须重写父类的抽象方法,除非子类也是抽象类

5.抽象类中的抽象方法不可以被private final修饰 抽象类也不可被private,final修饰

6.抽象类中的变量可以是私有的,抽象类中可以有构造方法,抽象类不能被实例化


接口

接口A

public interface A {}


接口B

public interface B {}

接口IUsb

public interface IUsb extends A,B{ public final static double PI = 3.14;public  abstract void write();}


实现接口IUsb


public class Udisk implements IUsb{@Overridepublic void write() {System.out.println("Upan写数据。");}}



1.接口关键字 interface  接口类名称第一个字母一般都是大写I表示

2.接口可以实现多继承 ,弥补了继承的单根性

3.接口中的方法只能用 public abstract 修饰 接口中的变量是public static final 修饰的 即接口中的属性都是静态常量

4.接口中的方法都是抽象方法,没有方法体。实现接口用implement关键字实现,当一个类实现了接口必须重写接口中的抽象方法,除非此类是抽象类

5.接口中没有构造方法。

原创粉丝点击