zoukankan      html  css  js  c++  java
  • java复习(5)接口、继承、多态

    Java作为完全面向对象语言,接口、继承和多态是三个非常重要的概念。

    1.继承。

    (1)关键字: extends

    (2)子类用super()调用父类构造函数,用super().方法 调用父类的成员方法

    (3)子类中 方法重写:更改权限(如: protected 改为 public ) 或修改方法返回值类型

                    重构:子类和父类成员方法的唯一不同是方法内容

    (4)子类实例化时,会从父类从顶向下依次调用构造函数

    2.Object类。

    (1)Object是所有类的父类

    (2)getClass()方法: 返回对象执行时的Class实例,然后接.getName()获取当前类的方法

    (3)toString()、equals()方法,前面已经讲过啦,这里不再赘述。

    3.对象类型转换。

    (1)向上转型: 子类直接调用父类的方法。例如:鸡类继承自家禽类,定义的鸡实例当然是家禽,拥有家禽的属性和方法,当然可以调用拉,合法。

    (2)向下转型: 需要显示类型转换。[看代码实例]

    (3)intanceof: 判断一个实例对象是否属于一个类,可与向下转型结合。

    4.方法重载。

    (1)同一方法名,参数个数/类型不同。

    (2)add(int ... a) :不定长参数a,相当于[]a 对待,  使用时:add(a,b,c,d,e);

    5.多态。

    相同功能的方法,在父类中定义,将不同类对象作为参数。调用时通过穿不同的参数调用不同的子类方法。

    6.抽象类与接口。

    抽象类即方法没有方法体的父类。接口中的所有方法也没有方法体。

    例如:

    public interface inter{

      void draw();

    }

    7.类的高级特性随记。

    (1).import: 可导入静态成员  如:import static java.lang.Math.mx; //导入静态成员方法

    (2).final修饰词:修饰变量、方法、类,修饰后不可更改/重写/继承。

    (3)内部类:类中嵌套类,内部类的实例化需要在外部类的非静态方法中实现  如:OutClass out = new OutClass();  OutClass.innerClass in = out.new innerClass();

    测试样例如下:含(接口、继承、多态)

    package re05;
    
    public class ClassTest {
    
        public ClassTest() {
            System.out.println(this.toString() + "调用ClassTest构造函数");
        }
    
        public void doSomeThing() {
            System.out.println("ClassTest_doSomeThing1");
        }
    
        public static void main(String[] args) {
            ClassTest t = new ClassTest();
            ClassTest1 t1 = new ClassTest1();
            t1.draw(); // 接口方法 方法化
            ClassTest1 t2 = new ClassTest1();
            t = t2; // 向上转换
            t.doSomeThing();
            t1.doSomeThing();
            if (t instanceof ClassTest1) // 判断父类对象是否属于子类
                t1 = (ClassTest1) t; // 向下转换
            t1.doSomeThing();
        }
    }
    
    class ClassTest1 extends ClassTest implements inter { // 继承
        public ClassTest1() {
            // super(); //调用父类构造函数
            System.out.println(this.toString() + "调用ClassTest1构造函数");
        }
    
        public void doSomeThing() { // 重构
            System.out.println("ClassTest1_doSomeThing1");
        }
    
        public void draw() {
            System.out.println("draw");
        }
    }
    
    interface inter {
        void draw();
    }
  • 相关阅读:
    linux 批量替换内容
    在Linux下如何查CC攻击?
    mysql init_connect
    利用javascript对字符串加密
    js学习笔记10----字符串的基本操作
    js学习笔记9----时间操作
    3种方法实现列表自动滚动
    如何解决wow.js与fullpage的兼容性
    js兼容获取元素的样式
    用php去除bom头
  • 原文地址:https://www.cnblogs.com/weberweber/p/6601621.html
Copyright © 2011-2022 走看看