美文网首页
08.接口、继承与多态

08.接口、继承与多态

作者: Java架构师之路 | 来源:发表于2019-08-17 20:10 被阅读0次

public class Son extends Parent implements drawString {
    public Son(String name, String age) {
        super(name, age);
        super.doSomethingPublic();
        super.doSomethingProtected();
        /*子类中无法调用父类非private的方法和属性*/
    }

    public Son() {
        /*父类的无参数构造方法自动被调用 所以不需要super.xx()*/
    }

    /*4.方法的重写 方法名称相同 方法的实现不同*/
    @Override
    public void doSomethingPublic() {
        System.out.println("son do something public");
    }

    /*4.方法的重载 方法名相同 参数不同 个数不同 方法的实现可相同 可不同*/
    public void doSomethingPublic(Son obj) {
        System.out.println("son do something public");
    }

    /*重载参数不同 产生变长参数*/
    public int sum(int... a) {
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            sum += a[i];
        }
        return sum;
    }

    @Override
    public void drawSomething() {
        System.out.println("implements interface drawSomething");
    }

    public static void main(String[] args) {
        Son son = new Son();
        son.doSomethingPublic();
        /*2.向上转型  把子类看成是父类的一个特殊对象 向下转型 不建议使用*/
        Parent p = (Parent) son;
        p.doSomethingPublic();
        Parent parent = new Parent();
        parent.doSomethingPublic();
//        Son obj = (Son)parent;
        /*3.使用instanceof判断一个对象是不是一个类的实例*/
//        if(p instanceof Son){
//            Son obj2 = (Son)parent;
//            System.out.println(obj2);
//        }
        System.out.println(son.sum(1, 2, 3, 4));
        /*5.多态 子类向上造型 和 方法的重载都是多态的表现形式*/
    }
}

class Parent extends GrandParent {
    private String name;
    private String age;

    public Parent(String name, String age) {
        this.name = name;
        this.age = age;
    }

    public Parent() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public void doSomethingPublic() {
        System.out.println("Parent do something public");
    }

    protected void doSomethingProtected() {
        System.out.println("Parent do something protected");
    }

    private void doSomethingPrivate() {
        System.out.println("Parent do something private");
    }

    @Override
    public String toString() {
        return "Parent{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}

/*6抽象类和接口 都不能被实例化 区别如下
* (1)抽象类可以有构造方法,接口中不能有构造方法。

(2)抽象类中可以有普通成员变量,接口中没有普通成员变量

(3)抽象类中可以包含静态方法,接口中不能包含静态方法
* */
abstract class GrandParent {
    public static final double PI = 3.14;

    /*抽象方法没有实现*/
    abstract void doSomethingPublic();

    /*一般方法有实现*/
    void doSomethingDeault() {
        System.out.println("GrandParent doSomethingDeault");
    }
}

/*接口不能被实例化  没有构造方法 没有方法的实现 不能定义常量*/
interface drawString {
    public double PI = 3.14;

    void drawSomething();
}

相关文章

  • 08.接口、继承与多态

  • 程序组第二次作业代码

    继承与多态: 接口作业:

  • 第二次作业

    继承与多态代码: 运行: 接口代码: 运行: trait代码: 运行:

  • 接口,继承与多态

    类的继承 1.重写父类的方法时,不能降低方法的修饰权限访问,可以修改方法的返回值类型,返回值类型必须是父类中返回值...

  • 天外天学习第二次作业

    作业1:继承多态与接口 运行截图 作业2:trait 运行截图

  • jvm结构&运行机制&多态实现

    浅析Java虚拟机结构与机制 浅谈多态机制的意义及实现 多态:编译时多态(重载)、运行时多态(继承父类、实现接口)...

  • 编程第三周的日常<二>

    接口与多态 接口 一种特殊的类,是一种抽象类的延伸。 接口之间允许继承而且允许多重继承---一个接口可以继承多个接...

  • 继承 多态 接口

    类的继承 子类可以在其构造方法中使用super()语句调用父类的构造方法 也可以在子类中使用super关键字调用父...

  • JAVA(9)继承与多态

    继承与多态 、抽象类、接口 继承: 继承是类与类的一种关系 java中的继承是单继承 继承的好处: 子类拥有父类的...

  • 程序组第二次作业

    继承与多态 代码: 运行截图: 接口作业: 运行截图: trait作业 运行: 就是这样啦……

网友评论

      本文标题:08.接口、继承与多态

      本文链接:https://www.haomeiwen.com/subject/szzhsctx.html