Java study notes (13)-abstract (abstract), interface (interface), the relationship between interface and class, internal class

abstract

abstract 修饰方法
	抽象方法
		格式 : public abstract 返回值类型 方法名([可选参数列表]);
		//抽象方法不能有方法体		
		//抽象方法必须在抽象类中
	抽象类
		格式: abstract class 类名{
			
		}
	注意:	  如果类中含有抽象方法,则要求该类也是抽象类;
		  抽象类可以不含有抽象方法。
		  抽象类的子类(1)如果也是抽象类,则不用重写父类的方法
		  	     (2)如果是具体类,则需要重写父类的所有方法。
	抽象类如何使用:
		抽象类能否直接实例化?——不能。
		使用抽象类时,需要用具体的类去继承,重写它的方法来实现。
		抽象类的方法可以重载也可以重写。
		当抽象类一个抽象方法都没有,子类的规则不变。
		不可以和final、private、static一起使用。
//抽象修饰符
//抽象父类
public abstract class AbstractDemo {
    
    
 
 public abstract void money();
 public  void money2() {
    
    }
 
 public AbstractDemo(){
    
    }}
//抽象子类
abstract class Demo2 extends AbstractDemo{
    
    
  
 }
 //具体子类
 class Demo3 extends AbstractDemo{
    
    

  public  void money() {
    
    

  }
  }

interface

interface 接口
public interface 接口名{
	//接口中的方法不能有方法体,需要被实现后重写。
	public void 方法名();
}
类实现接口之后才能使用
class 类名 implements 接口名{

}
	1.接口不能实例化
	2.接口中定义的成员属性默认为static 和 final 类型的,默认是public修饰,变量必须有自己的值。
	3.接口中定义的成员方法默认为public 和 abstract类型。
	4.没有构造方法。
	5.接口能够体现动态。是最常用的多态形式。面向接口开发。
	6.向上造型,创造一个实现类的对象,将值赋值给一个接口类型的引用。

The relationship between class and interface

类和类
	继承关系,多重继承,单继承
类和接口
	实现关系,类实现接口,类能够实现多个接口
接口和接口
	接口可以继承,多继承关系

Similarities and differences between abstract classes and interfaces

相同点:
	抽象类和接口中都可以定义抽象方法
	抽象类和接口都是多态的体现
	抽象类和接口都不能实例化
不同点:
	成员属性不一样、成员方法不一样
区别:
	抽象类是用来做共性的属性和方法
	接口是用来拓展的属性和方法

Inner class

概念 定义在类内部的类
分类
	成员内部类:类的内部,方法的外部
	方法内部类:定义在方法的内部
	静态内部类:定义在static修饰的类内部
	匿名内部类:接口实现类的对象
调用格式
	外部类名.内部类名 对象名 = 外部类对象.内部类对象();
	Outer.Inner in = out.new Inner();//Outer和Inner都是类,其中Inner是内部类。
	Outer.Inner in2 =  new Outer().new Inner();
注意:
	1.内部类可以直接访问外部类的成员变量和成员方法,用private修饰也可以访问。
	2.外部类要访问内部类的成员变量和成员方法需要创建内部类的对象。

Guess you like

Origin blog.csdn.net/qq_42351519/article/details/111190866