zoukankan      html  css  js  c++  java
  • 【JAVA语法】03Java-继承性

    • 继承的实现
    • 继承的限制
    • 子类对象的实例化
    • 方法的重写
    • Super关键字
    • 重写与重载的区别
    • final关键字
    • 抽象类
    • 接口

    一、继承的实现

    1.1 格式

    	class 子类 extends 父类 {}
    	class Student extends Person{}
    

    二、继承的限制

    2.1 Java中只允许单继承

    	class Student extends People,Worker {}  
    	//error,不允许多继承(一个人只允许有一个亲生父亲)
    

    2.2 子类不能直接访问父类的私有成员
    需要用get及set方法实现访问

    三、子类对象的实例化

    必须先调用父类中的构造方法,再调用子类构造方法
    

    四、方法的重写

    4.1 定义
    子类定义了与父类同名的方法(方法名称、返回值类型和参数均完全相同)

    class Parent{
    	public void tell(){
    		System.out.println("Parent");
    	}
    	
    }
    class Sub extends Parent{
    	public void tell(){
    		System.out.println("Sub");
    	}
    }
    public class test {
    
    	public static void main(String[] args) 
    	{
    		Sub subFunc = new Sub();
    		subFunc.tell();
    	}
    		
    	}
    OUTPUT: Sub
    

    4.2 重写限制
    被子类重写的方法不能拥有比父类更加严格的访问权限 (一般和父类一样即可)

    private(更严格)<default<public

    五、Super关键字

    5.1强行调用父类的方法

    若想调用父类同名方法——Super关键字

    class Parent{
    	public void tell(){
    		System.out.println("Parent");
    	}
    	
    }
    class Sub extends Parent{
    	public void tell(){
    		super.tell();
    		System.out.println("Sub");
    	}
    }
    public class test {
    
    	public static void main(String[] args) 
    	{
    		Sub subFunc = new Sub();
    		subFunc.tell();
    	}
    		
    	}
    OUTPUT: 
    Parent
    Sub
    

    5.2 Super不一定在重写中使用,也可以表示那些方法是从父类继承而来的(提高代码可读性)

    六、重写与重载区别

    七、Final关键字

    7.1 用途: 完结、最终
    使用final声明的类不能被继承;
    使用final声明的方法不能被重写;
    使用final声明的属性不能被修改(常量)。

    八、抽象类

    8.1 概念
    抽象类:包含一个抽象方法的类(不能直接实例化对象,需通过其子类实例化对象)
    抽象方法:声明而未被实现的方法(使用abstract关键字声明)
    重写:抽象类被子类继承,子类(如果不是抽象类)必须重写并实现抽象类中所有抽象方法

    abstract class Abs{
    	private int age;
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public abstract void say();//抽象方法
    }
    class SubAbs extends Abs{
    	public void say(){
    		
    	}
    }
    public class test {
    
    	public static void main(String[] args) 
    	{
    		SubAbs a = new SubAbs();
    		a.setAge(20);
    	}
    		
    	}
    
    

    九、接口

    9.1 概念
    接口:特殊的类,全部由全局常量和公共抽象方法所组成
    实现:接口必须通过子类实现(类比抽象方法),使用关键字implements
    多实现:接口可以多实现(多继承,区分"类"的单继承)

    9.2 格式

    	interface interfaceName{
    	全局常量
    	抽象方法
    	}  
    

    9.3 一个子类可以同时继承抽象类和实现接口

    	interface Inter1{
    	public static final int AGE = 100;
    	public abstract void tell();
    }
    interface Inter2{
    	
    	public abstract void say();
    }
    
    abstract class Abs1{
    	public abstract void print();
    }
    
    class Sub extends Abs1 implements Inter1,Inter2{	//多继承(多实现)
    	public void tell(){}
    	public void say(){}
    	public  void print(){							//一个子类可以同时继承抽象类和实现接口
    		
    	}
    }
    

    9.4 接口的继承——相当于间接实现"类的多继承"

    一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承

    interface Inter1{
    	public static final int AGE = 100;
    	public abstract void tell();
    }
    interface Inter2{
    	
    	public abstract void say();
    }
    
    interface Inter3 extends Inter1,Inter2{
    	
    }
    
  • 相关阅读:
    [转]使用WIndows的BAT来延时执行某程序
    Xamarin.Forms之ListView探究笔记
    常用SQL语句集合
    Xamarin.Forms之探索笔记
    (持续更新)Xamarin.Forms之常见的问题
    (持续更新)Xamarin.Forms之DevExpress GridControl的使用技巧
    Xamarin.Forms之Effects的使用
    Xamarin.Android之添加.so文件
    from psycopg2._psycopg import ( ortError: DLL load failed: 找不到指定的模块。的一种解决方案
    ODOO中创建website Part-1 创建模块
  • 原文地址:https://www.cnblogs.com/Neo007/p/6844278.html
Copyright © 2011-2022 走看看